数据库设计 – 数据库本地化
发布时间:2020-12-12 06:33:59 所属栏目:MsSql教程 来源:网络整理
导读:我有许多数据库表,其中包含需要本地化的名称和描述列.我最初尝试设计支持这种情况的数据库模式是这样的: product-------idnamedescriptionlocal_product-------idproduct_idlocal_namelocal_descriptionlocale_idlocale------idlocale 但是,此解决方案需要为
我有许多数据库表,其中包含需要本地化的名称和描述列.我最初尝试设计支持这种情况的数据库模式是这样的:
product ------- id name description local_product ------- id product_id local_name local_description locale_id locale ------ id locale 但是,此解决方案需要为包含需要本地化的名称和描述列的每个表创建一个新的local_ table.为了避免这种开销,我重新设计了模式,因此只需要一个本地化表 product ------- id localization_id localization ------- id local_name local_description locale_id locale ------ id locale 以下是有2个表(产品和国家/地区)需要本地化时将存储在此架构中的数据示例: 国家 id,localization_id ----------------------- 1,5 产品 id,2 本土化 id,local_name,local_description,locale_id ------------------------------------------------------ 2,apple,a delicious fruit,2 2,pomme,un fruit délicieux,3 2,apfel,ein k?stliches Obst,4 5,ireland,a small country,2 5,irlande,un petite pay,3 现场 id,locale -------------- 2,en 3,fr 4,de 请注意,本地化表的复合主键是(id,locale_id),但product表中的外键仅指该复合PK的第一个元素.从标准化的POV来看,这似乎是一件“坏事”. 有什么方法可以解决这个问题,或者,是否有一个完全不同的架构支持本地化而不为每个可本地化的表创建单独的表? 更新: 谢谢, 解决方法我认为没关系.您描述的是产品与其本地化文本之间的一对多关系.我想知道你是否应该本地化英语而不是在产品表中对其进行非规范化. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |