我正在用 PHP 构建一个多语言网站。
起初我考虑使用结构如下的 JSON 文件
{
"TEXT_CODE": {
"LANG_CODE": "TEXT",
"LANG_CODE": "TEXT"
}
}
但是,由于文本可能很多,我选择了更易于操作和可读的数据库解决方案。
<小时/>假设我们有 200 个文本和 5 种语言,就数据库设计与性能相结合而言,哪一个是最佳选择?
解决方案1
单个表 texts_multilingual
,其中包含 200 * 5 = 1000
行,可在每次页面请求时进行搜索。
解决方案2
每种语言一个表 texts_en
、texts_it
等,以便每个研究仅在 200 行中搜索文本代码。
我认为解决方案 #2 是性能方面最好的方法,但我想了解更多专家开发人员的意见以及他们将如何处理它。
最佳答案
第一个解决方案是更好的解决方案。为什么?
首先,您只有一个表,您可以使用索引和分区来针对查询优化该表。
其次,您可以非常轻松地添加新语言。没有要添加的新表。
第三,您可以轻松查看表格中的语言以及是否有所有语言的所有文本的翻译。
为了提高性能,您只需要在表上建立一个索引。 。 。 texts_multilingual(语言,textid,文本)
。事实上,您可以考虑将其设为主键。就我个人而言,我更喜欢有一个自动递增的主键。但由于该表很少更新,以一种特定的方式使用,并且不太可能有外键关系,因此拥有复合主键也是合理的。
关于php - 多语言网站 : one table or multi-tables?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43820304/