数据库 - 存储自定义变量 - 典型的wordpress数据库设计

时间:2011-12-22 08:56:07

标签: mysql database wordpress database-design

在典型的wordpress网站中,有一些表最后用“meta”命名。在这些表中有2列,一列名为“meta_key”,另一列名为“meta_value”。存储了任何类型的变量。

这不是一个糟糕的设计吗?这种设计有什么好处,有哪些缺陷?

1 个答案:

答案 0 :(得分:4)

这完全取决于外部设计 - 键值表只是另一种存储数据的方式,只是另一种思维方式。就像NoSQL一样。

你必须研究wordpress如何使用这些表。由于我从未深入研究数据库模式,所以我不能对wordpress说太多。我已经检查过的代码很有趣,但没什么了不起的。

另一方面,Magento也在某些部分使用键值表,并且它对于该特定设计非常有用。不是说我曾经使用过野兽。

根据我的经验,我得出的结论是,设计中的实际实体都有自己的表,而配置数据之类的东西可以放在一个很薄的表中。

懒惰但不懒惰是好事。

另一件值得思考的事情是,为键值表提供额外的信息列(除了id之外,如果你使用它)。称之为“关系”。对于这种思维来说,这是一个良好的开端(不要因为它是一个有着奇怪生物的深洞兔洞而烦恼不已):

http://en.wikipedia.org/wiki/Resource_Description_Framework