我有一个项目表,我们称之为ITEMS。现在我需要以多种语言存储每个项目的名称。我正在寻找最有效的方法来做到这一点。到目前为止,我在下面有这些可能的解决方案,但我真的想因某些特定原因选择一个。
为了提问,让我们保持简单,ITEMS表的结构:
id INT PRIMARY KEY
name VARCHAR(20)
现在,第一个最简单的解决方案可能是在ITEMS表中为每种语言添加列,例如name_english,name_german,name_spanish等......但是在添加新语言时,这可能涉及PHP的大量工作。
第二个解决方案 - 我会创建表LANGS:
id INT PRIMARY KEY,
language VARCHAR(10)
和表格ITEMS_LANGS:
id_items INT
id_langs INT
translated_name VARCHAR(20)
所以每次我都要加入表ITEMS和ITEMS_LANGS,但添加新语言要容易得多。
我应该选择哪种解决方案,或者您有更好的解决方案?在此先感谢,希望我已经详细解释了我的问题。
答案 0 :(得分:1)
如果符合以下条件,第二个选项会更好:
我将通过TEXTS更改ITEMS_LANGS(更通用):
id_text INT
id_entity INT
id_langs INT
translated_name VARCHAR(20)
答案 1 :(得分:0)
我会在开头描述时为ITEMS创建一个表,其中id为主键,然后为每种语言分别使用表(与id作为外键和名称相同)。
这将使您更容易添加不同的语言/删除一些/添加项目,如果名称不存在您需要的语言,则仍然具有后备值...等等...