考虑到磁盘空间很便宜,normalize data (1NF) 有意义吗?而不是将其全部存储在一个地方以加快查询速度?
背景:
- 我们有一个用户表 - 事件组织者和事件参与者
- 两者都有一些共同的领域,但组织者有更多的领域
- 现场参加者的数量远多于组织者
问题:(在很久以前)我们将现有的单独表格组合起来,并将它们制成类似于以下的表格:
Table_Users
UID, Name, Email, CommonField1, OrgSpecificField1, OrgSpecificField2
现在,我们只有一张公用表供这两种类型的用户使用。对于与会者来说,最后两个字段为 NULL。
将上述结构与:
Table_Users
UID, Name, Email, CommonField1
Table_UsersOrganizers
UID, OrgSpecificField1, OrgSpecificField2
这需要加入。现在,从站点速度的角度来看,公共(public)集成表和分离表哪个检索速度更快?请记住,我们将不断获取这些记录。
最佳答案
标准化涉及数据完整性 - 准确地表示您尝试建模的现实。它与磁盘空间的成本无关。目标是至少达到 Boyce-Codd/第五范式,除非并且直到您找到一个令人信服的理由不这样做。
关于mysql - 标准化数据(1NF)仍然有意义吗? (表中有空字段有什么问题?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6542831/