sql-server – 用户和地址应该在单独的表中吗?
目前我的用户表有以下字段
>用户名 我不确定是否应该将地址字段放在另一个表中.我听说如果不这样做,我会打破3NF虽然我不明白为什么.有人可以解释一下吗? 解决方法有几点肯定不是3NF;还有一些有问题的:>每个用户可能有多个地址吗? 如果对这些问题中的任何一个的答案是肯定的,那么它表明该领域的3NF存在问题. 3NF的原因是消除重复数据;确保更新,插入和删除使数据保持一致;并且最小化数据的存储 – 特别是不需要将数据存储为“尚未知道/未知/空”. 除了这里提出的问题之外,还有一个问题是什么构成了你的桌子的主键 – 我猜它与用户有关,但是你提供的名字和其他信息不太可能是唯一的,所以不足以作为PK. (如果你认为姓名加姓氏是独一无二的,你建议你永远不会有一个以上的约翰史密斯?) 编辑:根据一些字段是可选的进一步信息,我建议您将可选字段分成不同的表,并在新表和用户表之间建立1-1链接.将通过在引用用户表的主键的新表中创建外键来建立此链接.正如你所说,没有一个字段可以有多个值,那么它们目前不太可能给你带来问题.但是,如果这些中的任何一个发生了变化,那么不将它们拆分会给您带来升级应用程序和数据以支持应用程序的问题.您仍然需要解决主键问题. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |