php - 语言的多列与一列中的序列化数组

标签 php mysql

我正在尝试以更准确和专业的方式创建表格。

我需要两个字段 TITLEDESCRIPTION 两种语言,但我不太确定过一段时间我是否会添加第三种语言。

你更喜欢哪一个?

-----------------------------------------------------------
id | title_en | title_ge | description_en | description_ge
-----------------------------------------------------------
...|..........|..........|................|................
-----------------------------------------------------------

---------------------------
id | titles   | descriptions
---------------------------
...|serialized| serialized
---------------------------

序列化的地方是这样的

array(
 'en' => 'title for english',
 'ge' => 'title for georgian'
)

或者还有其他建议吗?感谢 future 的推荐。

最佳答案

我会结合两个表来完成。

您的第一个表格应仅包含英文标题和说明。类似于您现在拥有的。

您的辅助表格将包含翻译。结构类似于:

-----------------------------------
doc_id | lang | title | description
-----------------------------------

您可以在标题和描述中放置一个包含 doc_id 和 lang 以及全文索引的主键。

通过这种方式,您可以构建一个查询,如果您要查找的语言的翻译不存在,该查询将回退到原始英文文本,并将您的搜索限制为一种或另一种特定语言。

关于php - 语言的多列与一列中的序列化数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14164627/

相关文章:

mysql分组性能调优

php - 如何在 php 和 mysql 中的 2 个数据库和不同主机之间进行同步

php - 如何使用 PHP 或 javascript 检测 Flash 版本?

php - 如何更新数据库中的json字段laravel?

php - 动态页面的访客计数器

mysql - 如何使用 xampp mysql 配置 django?

mysql - 从 SQL 字符串中删除 % 字符

php - TCPDF 的 getNumLines() 有时会出错

php - Laravel-Eloquent-Adding record to MySQL : Building dynamic eloquent insert command, 并在第一列返回 "Column Not Found"

php - 插入 codeigniter 时出错