我正在开发多个网站。尝试为此目的设计最佳的数据库模式。
如您所见,有两个表:langs
和menu
。 我的想法是:
对于前。让我们来看看MySQL表中的多语言导航生成。在PHP后端,同时从数据库生成导航
menu
表格行langs
(name
表的menu
字段)
并从定义语言的列中获取数据(例如,en,ru)您如何看待,是最佳方式,还是更有效的解决方案?请给我数据库相关的答案,而不是文件。 (例如,gettext,......等)
答案 0 :(得分:1)
如果langs
表包含language
列,每个翻译都有一行,那会更好。这允许您稍后添加另一种语言,只需要应用数据更改(而不必重新编写查询)。
正如您已经暗示的那样,执行左连接并回退到直接在menus
表中保存的默认语言也是一个好主意(在这种情况下,您不需要保留翻译例如en
表中的langs
,因为英文版本将始终可用。“
您可能还需要考虑存储针对特定国家/地区的翻译(例如,如果有多个西班牙语国家/地区的翻译可能不同),并遵循后备策略:language-country
,{{1 },language
翻译。
答案 1 :(得分:1)
您可以进一步规范化:
引用字符串的表然后通过tokenname.id将字符串引用为外键。
请注意,您需要某种迷你模板语言才能进行文本本地化。