1

我需要创建支持多种语言的网站,但是我从来没有这样做过,我需要帮助来为我的应用程序创建数据库。

网站将是商业,所以我们以 ITEM 表为例。我唯一能很快想到的就是这个模型,但我认为这不是很好,因为 Language 表与 Item 表绑定,但我也会有 Company 表,其他人可能也有。

Item
    ID
    Price

Language
    ID
    ItemID
    Language (example: en-US)
    Field (example: title)
    Value (example: Good Title)

有人可以帮我设计支持多种语言的优秀数据库吗?

4

2 回答 2

2

如何在数据库中存储多语言数据有多种方法,我通常这样做:

Item
  ID
  price
  title_translation_key_id (is a TranslationKey foreign key)
  desc_translation_key_id (is a TranslationKey foreign key)

TranslationKey
  ID
  key (string)

Translation
  ID
  translation_key_id (is a TranslationKey foreign key)
  content (string)
  language_id (is a Language foreign key)

Language 
  ID
  code

如何检索数据?

您可以使用子选择,或者如果您的数据库性能不佳,您可以从中生成特定于语言的表。

于 2012-09-06T13:06:19.647 回答
0

另一种可能的方法是将翻译保留为 json 对象。例如

Item
  Id   Price                       Name
   1    100     {"en":"Car", "fr":"voiture", "am":"մեքենա"}

它非常简单,您不需要实现任何连接来检索数据。但是,您始终必须获得所有翻译。如果您支持很多语言,这可能不太好。

于 2020-06-19T20:27:53.560 回答