加入收藏 | 设为首页 | 会员中心 | 我要投稿 大庆站长网 (https://www.0459zz.com/)- 科技、智能边缘云、事件网格、云计算、站长网!
当前位置: 首页 > 数据库 > MySql > 正文

具有国际化的MySQL数据库设计

发布时间:2020-09-25 06:55:28 所属栏目:MySql 来源:互联网
导读:我将开始研究中型应用程序,我正在计划它的数据库设计.我不确定的一件事是这个.我将有许多表需要国际化,例如:“membership_options,gender_options,language_options等”这些表中的每一个都将共享常见的i18n字段,例如:“title,alternative_title,short_descr

我将开始研究中型应用程序,我正在计划它的数据库设计.
我不确定的一件事是这个.
我将有许多表需要国际化,例如:“membership_options,gender_options,language_options等”

这些表中的每一个都将共享常见的i18n字段,例如:
“title,alternative_title,short_description,description”

在您看来哪种方式最好?
有一个i18n表,每个表需要它们具有相同的字段吗?

或做类似的事情:

Membership table     Gender table
----------------     --------------
id | created_at       id | created_at
1  -  22.03.2001       1 - 14.08.2002
2  -  22.03.2001       2 - 14.08.2002


General translation table
-------------------------
record_id | table_name | string_name | alternative_title| .... |id_language
 1        - membership   regular         null                     1 (english)
 1        - membership   normale         null                     2 (italian)
 1        - gender       man             null                     1(english)
 1        -gender        uomo           null                      2(italian)

这会避免我重复这样的事情:

membership_translation table
-----------------------------
membership_id | name | alternative_title | id_lang
1               regular  null             1
1               normale  null             2

gender_translation table
-----------------------------
gender_id | name | alternative_title | id_lang
1           man     null                1
1           uomo    null                2

等等,所以我可能会减少数据库表的数量,但我不确定性能.我不是一个数据库设计师,所以请告诉我. 最佳答案 我见过这种方式最常见的方法是使用两个表,membership和membership _ml,其中一个存储基值,ml表存储本地化的字符串.这与您的第二个选项类似.我认为这样的大多数系统都是这样制作的,因为它们的设计并没有考虑到国际化,因此额外的_ml表格会在之后“加入”.

我认为更好的选择类似于你的第一个选择,但有点不同.您将拥有一个用于存储所有翻译的中央表,但不是将表名和字段名放在那里,而是使用标记和中央“内容”表来存储所有翻译.这样,如果需要,您可以在基表中的标记和Content表中的翻译之间强制执行某种RI.

我实际上asked a question关于这个事情,所以你可以看看更多的信息(而不是在这里重新设计模式示例).

(编辑:大庆站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读