Sql 如何实现多语言支持ERM

Sql 如何实现多语言支持ERM,sql,multilingual,Sql,Multilingual,我想知道,如果我的方法是正确的网站提供其内容,由CMS管理,在不同的语言 页面本身: 人们可以通过旅游指南预订路线。很简单。现在,该公司需要用不同的语言向数据库中添加路由 我认为,它基本上创建了路线,然后可以添加不同语言的描述。因此,我基本上将路由的内容和标题存储在一个单独的表中,其中包含路由id和语言代码 你觉得怎么样 这里是我在MySQL工作台中的ERM的图片 有没有人有过类似的项目,并且认为这种方法会导致问题,或者你认为这是正确的方法?我真的想不出别的办法。因为我不想给路线增加一列,比如

我想知道,如果我的方法是正确的网站提供其内容,由CMS管理,在不同的语言

页面本身: 人们可以通过旅游指南预订路线。很简单。现在,该公司需要用不同的语言向数据库中添加路由

我认为,它基本上创建了路线,然后可以添加不同语言的描述。因此,我基本上将路由的内容和标题存储在一个单独的表中,其中包含路由id和语言代码

你觉得怎么样

这里是我在MySQL工作台中的ERM的图片

有没有人有过类似的项目,并且认为这种方法会导致问题,或者你认为这是正确的方法?我真的想不出别的办法。因为我不想给路线增加一列,比如“lang_代码”。因为我需要多次创建路由本身。这显然是可能的,但管理起来更困难,在设置日期等方面更耗时

我期待着在这里收到一些关于多语言支持做出类似决定的人的评论

祝你一切顺利,
Richard

将特定语言的描述分开是典型的。数据描述的“区域设置”应与用户的“区域设置”匹配。在ERD中,用户表上有两列(国家和语言),但内容表上只有一列(语言代码)。你会想让他们保持一致。选择“语言”和“国家”两栏,并遵循标准。所有文本都需要分开(“难度”中的“标题”也需要特定于语言环境吗?)

该标准将取决于您如何确定用户的语言环境(http Accept Language header?用户输入?)。区域设置可以是两个字符的语言代码(ISO 639)和两个字符的国家代码(ISO 3166)。所以,恩我们,恩GB,恩CA,fr CA

您可能希望强制执行一项业务规则,即路线必须始终存在美式英语描述。然后,您可以为用户提供一个首选语言的层次结构。例如,如果用户的首选项定义为葡萄牙语-巴西(pt_-BR),但您没有相应的路线描述,则可以尝试葡萄牙语-葡萄牙(pt_-pt),如果不存在,则返回英语-美国(en_-US)。通过将语言和国家保留为两个独立的列,并引入另一个字段来标记语言组的默认描述(即,如果未找到其他变体,则将pt_pt标记为默认pt语言),可以使这些操作更容易执行