【发布时间】:2011-01-05 18:14:30
【问题描述】:
我之前曾问过一个类似的问题 (integer-vs-char-for-db-record-property),但偶然发现了一些与我在上一篇文章中收到的所有建议背道而驰的问题。在最流行和最成熟的开源博客脚本 Wordpress 3 中,帖子状态在 db - 'publish'、'auto-draft'、'inherit'、'pending'等中存储为VARCHAR(20),而不是@987654323 @ 带有查找表或映射的字符串常量,或CHAR,或类似的东西。这也适用于字段post_type('post'、'attachment'、'revision'等)和其他一些字段。
因此,要查找所有已发布的帖子,我需要运行 SELECT * FROM posts WHERE post_status = 'published' AND post_type = 'post' 之类的内容。此外,post_status、post_type 和其他一些列上有一个多列索引,这肯定会加速这种搜索。有人能解释一下为什么他们采用这种方式而不是另一种方式吗?这种方法的优点和缺点是什么?
【问题讨论】:
标签: sql mysql database wordpress database-design