我查看了一些重要的论坛,例如 SMF 论坛、PhpBB 或 VBulleting 论坛,我意识到它们不在 3rd FN 中。
他们有很多 NULL 字段,例如,在 SMF 论坛中,成员行可以将所有这些列都设置为 NULL:
pm_ignore_list, messageLabels, personalText, websiteTitle, websiteUrl, location, ICQ, AIM,
YIM, MSN, timeFormat, userTitle, notifyAnnouncements, secretQuestion, secretAnswer, validation_code, additionalGroups, smileySet
所以...假设 18 个字段在表的任何行中都可以为 NULL。 那不是 3rd NF...
他们为什么这样做?我相信他们对 BD 了解很多...... 谢谢。
最佳答案
非规范化的首要原因是性能,这是许多论坛中臭名昭著的问题。
最初 SQL 的设计目的不是为了轻松地存储分层数据,并且有许多不太理想的模式设计试图解决此限制。
关于php - 为什么论坛数据库不在 3rd NF 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10232145/