Database 不改变数据库结构的多语言支持

Database 不改变数据库结构的多语言支持,database,multilingual,erd,Database,Multilingual,Erd,我有一个关于网站语言支持的问题 当使用多种语言时,构造数据库的最佳方法是什么?例如,在创建包含议程表、新闻表和产品表的数据库模式时。所有这些组件都有描述和标题 然后,结构将是: 议程(id、标题、说明) 新闻(id、标题、描述) 产品(id、标题、说明) 通常,我创建一个语言表。前面提到的每个表都会得到一个额外的列;语言识别码 这意味着记录的每个翻译都会使用不同的ID再次插入。此方法的优点是,您可以添加多种语言,而无需更改数据库(您只需在新创建的语言表中添加新行,并在新闻/议程/产品表中插入

我有一个关于网站语言支持的问题

当使用多种语言时,构造数据库的最佳方法是什么?例如,在创建包含议程表、新闻表和产品表的数据库模式时。所有这些组件都有描述和标题

然后,结构将是:

  • 议程(id、标题、说明)
  • 新闻(id、标题、描述)
  • 产品(id、标题、说明)
通常,我创建一个语言表。前面提到的每个表都会得到一个额外的列;语言识别码

这意味着记录的每个翻译都会使用不同的ID再次插入。此方法的优点是,您可以添加多种语言,而无需更改数据库(您只需在新创建的语言表中添加新行,并在新闻/议程/产品表中插入相应的语言ID)

我知道我知道这是一个非常麻烦的事实。基本上具有相同内容的行(仅在不同的翻译中)无法知道它们是相同的

我见过很多方法,比如使用“翻译”表。所以你会得到额外的新闻翻译,产品翻译和议程翻译

是否有其他解决方案,而不需要为每个组件添加转换表


提前感谢。

最终的概括是要有一个
文本字段
表格。将文本存储在其中,而不是维度表中(维度表只有文本字段表的外键)。然后,您可以根据需要为每种语言设置一列,或为每种语言设置一行。我还建议主键包含一些本质上有意义的内容,比如(TableID,FieldID)。非常感谢您的回答!但是,这并不能解决每行有多个需要翻译的文本字段的问题(例如标题、描述,可能还有其他标记等)。至少,从您的示例中,我无法完全理解这一点。文本表中没有标题字段和描述字段,而是有两个外键字段。该表有一列表示英语,一列表示法语,一列表示西班牙语,等等。这样,您的一行指向文本表中的两行;文本表中的一行是标题,文本表中的另一行是说明。另一个结果是,如果许多行以前有相同的标记,它们都可以指向sane text表行。这个答案非常合理。谢谢