我对这个基本的multilang设计有一个实现问题。
表格内容
content_id bigint(20) NOT NULL,
lang_id int(5) NOT NULL,
word varchar (500) NOT NULL,
created datatime,
现在问题在于实施这个问题。我假设在应用程序中我声明页面上的每个单词都有content_id,如1,2,3,4,5 ......其中1 =“Hello”2 =“欢迎来到xxxxx”等等吗?所以问题是我在代码中给出“Hello”= 1。所以在表中就是这样的 1,23(英语),你好。
但是现在如果我有一个西班牙语会话,我怎么会在表中找到“你好”?因为我在代码中硬编码1为“Hello”所以系统将始终查找它并找到英文文本。我看到的唯一工作是每种语言都有单独的表格吗?
答案 0 :(得分:1)
您需要将lang_id和content_id设为复合主键。您最终会得到如下数据:
1 Hello 1
1 Hola 2
2 Thanks 1
2 Gracias 2
2 Danke 3
您甚至可能希望将英语翻译分成一个单独的表格,以便您作为开发人员更容易(因为您会说英语)...然后您知道WordId 1是规范地“Hello”。显然是语言表的外键。如果这样做,您可能还需要主键的代理键...这样可以简化更新。