哪一个最适合我的项目,更多列或更多行的性能?

时间:2011-08-23 21:48:44

标签: php mysql

我正在为我的cms编写本地化插件。我有几个选项可以做到这一点,但最简单的是为每种语言创建额外的列(如title_en,content_en)。

另一种方法是创建一个名为“language”的列,每篇文章中的每种语言都会创建一行。但是,动态区域只是'title','content'和'nice_url',但有10列(id,category,display,date ...),这些列将是不必要的。

其他方式(比如创建名为article_translations的额外表)不适合我的CMS插件算法。

2 个答案:

答案 0 :(得分:2)

更多列不可扩展,并且 更容易添加行而不是列。

最好为每种语言的数据添加一行。

您尚未发布太多信息,但尝试将所有公共数据放入一个表中,并将特定于语言的数据放在另一个具有外键或语言枚举类型的子表中。如果有关于要存储/检索的语言的信息,请使用语言表的外键。如果要检查值,请使用枚举,或者如果您不挑剔则只使用文本。

另外,应该注意的是,你不可能一次只想要一种以上的语言,所以在拥有一个非常宽的表格中没有任何优势,其中一行包含所有语言的所有信息。

答案 1 :(得分:0)

解决方案取决于您计划支持的语言数量? 如果有几个你可以添加几个额外的列没有任何问题。 使用此模型可以很容易地在语言之间切换。但如果您计划使用多种语言,我认为您应该考虑其他表格。