MySQL - 关于多语言DB的建议

时间:2012-12-27 21:40:29

标签: mysql

我需要一点帮助,为多语言网站创建数据库。我有一种感觉,我正在创造一个怪物。所以任何建议都会非常有帮助。我有两张桌子。

此表包含对每种语言都相同的数据:

article

id_article
images
date_created
date_start
date_end

此表包含不同的数据 - 英文文本与德文文本不同。

article_info

article_id
title
text
info
category_id
lang_id

这背后的想法是一篇文章可以使用多种不同的语言。这是建立表格的好方法还是我做错了什么?有更好的方法吗?

1 个答案:

答案 0 :(得分:2)

我相信这种设计,其中一篇文章可以有一个或多个不同语言的渲染,将很好地工作。我曾经在一个类似的系统上工作,其中多种语言是事后的想法。在该系统上,主要语言(通常是EN-us)在文章表中有列。这样更好。

有一点需要考虑:即使您没有翻译,您也可能希望能够存储文章的摘要数据,例如标题,主题,关键字以及可能的多种语言摘要整篇文章。因此,您可能需要使用title_info,text_info,keyword_info等单独的表,而不是article_info,每个表都有一个lang_id键。

注意你的角色集(utf8是一个不错的选择)和整理。您的默认排序规则应为utf8_general_ci,但您的

 ORDER BY xxx COLLATE collation

可能需要根据用户首选项设置逐个用户设置。例如,对于西班牙语标题,COLLATE utf8_general_ci不会做正确的事情,其中​​n和ñ是不同的字母。