gpt4 book ai didi

database-design - 数据库本地化

转载 作者:行者123 更新时间:2023-12-04 08:01:02 25 4
gpt4 key购买 nike

我有许多包含 name 的数据库表和 description需要本地化的列。我最初尝试设计一个支持这一点的数据库模式是这样的:

product
-------
id
name
description


local_product
-------
id
product_id
local_name
local_description
locale_id


locale
------
id
locale

但是,此解决方案需要新的 local_每个包含 name 的表的表和描述列需要 localization .为了避免这种开销,我重新设计了模式,以便只有一个 localization需要表
product
-------
id
localization_id


localization
-------
id
local_name
local_description
locale_id


locale
------
id
locale

以下是当有 2 个表(产品和国家/地区)需要本地化时将存储在此模式中的数据示例:

国家
id,     localization_id
-----------------------
1, 5

产品
id,     localization_id
-----------------------
1, 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

注意 localization 的复合主键表是 (id, locale_id) ,但是 product 中的外键table 仅指此复合 PK 的第一个元素。从规范化的 POV 来看,这似乎是“一件坏事”。

有什么办法可以解决这个问题,或者,是否有一个完全不同的模式支持本地化,而无需为每个可本地化的表创建单独的表?

更新:
许多受访者提出了一种解决方案,需要为每个可本地化的表创建一个单独的表。然而,这正是我想要避免的。我上面提出的模式几乎解决了我满意的问题,但我对 localization_id 的事实感到不满。外键仅指 localization中对应主键的一部分 table 。

谢谢,
大学教师

最佳答案

我觉得还好。您正在描述产品与其本地化文本之间的一对多关系。

我想知道您是否还应该本地化英语而不是在产品表中对其进行非规范化。

关于database-design - 数据库本地化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1322881/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com