规范化的表应该有较少的数字列,并且可以尽可能具有参考字段。这是正确的方法吗? 列数与正常化过程之间是否有任何关系?单个表格中的列太多 - 这是很好的正常形式吗?
3
A
回答
10
您应该遵循规范化原则,而不是关注表中列的绝对数量。业务需求将推动实体,他们的属性和他们的关系,没有绝对数量是“正确的”。
11
有间 列数和良好的 正常化过程中的任何关系?
总之,没有。一个3NF规范化表将有尽可能多的列需要,只要该表内
数据是关键,整个键,并没有什么 但关键取决于 (帮帮我吧科德)。
有些情况下(一些)非规范化可能实际上提高了性能,而唯一的实际测量方法是测试它。
3
虽然我@ocdecio同意,我也观察到,被归一化的数据库一般都有每个表的列数较少,比一个不是更多的表,在相同的数据存储需求。类似于代码味道,给定相当大的应用程序的数据库味道会相对较少。这可能暗示您的数据可能不是正常形式。在适当的情况下应用规范化规则将缓解这种“气味”。
4
这是一种您可以使用的方法,如果您觉得您的桌子有太多的字段。例如: -
CREATE TABLE Person
Person_ID int not null primary key,
Forename nvarchar(50) not null,
Surname nvarchar(50) not null,
Username varchar(20) null,
PasswordHash varchar(50) null
在该表中的人,但显然不是所有的人都需要有用户因此用户名和PasswordHash字段为空。然而,它可能会有比用户多1或2个数量级的人。
在这种情况下,我们可以创建一个用户表来保存用户名和PasswordHash领域有一个一对一的关系Person表。
您可以通过查找套可空字段,要么空在一起有共同价值观和显著可能是空推广这一做法。这表明您可以提取另一张表格。
编辑
得益于斯蒂芬妮(见注释)这种技术显然是被称为“垂直分区”
0
每一列必须有主键的直接和独家合作关系。如果你有一个属性很重的项目,那么你可以做的只是简化模型。任何分裂成多个表的尝试都会产生反作用,毫无意义。
相关问题
- 1. SQL中的单行表:这是一个很好的实现吗?
- 2. 有太多setTimeout()很好吗?
- 3. tf.nn.depthwise_conv2d太慢了。这是正常的吗?
- 4. 这是很好的XML吗?
- 5. 为什么这个表格不是第一种正常形式
- 6. 这是一个很好的PATCH格局
- 7. 这是一个正常的Java正则表达式行为吗?
- 8. Mongoid多对多,这是正常的吗?
- 9. 这是Singleton模式的一个很好的用法吗?
- 10. 这是装饰者模式的一个很好的用法吗?
- 11. 这是一个很好的得分方式吗?
- 12. Javascript命名空间 - 这是一个很好的模式吗?
- 13. 这是一个很好的策略模式用例吗?
- 14. Highcharts中有很多列的列太多
- 15. 这是很好的链接练习吗?
- 16. 它是一个很好的做法,同一列的多个表
- 17. 这是JavaScript中的一个很好的变量名吗?
- 18. 这个正则表达式是多字节安全的吗?
- 19. Fk在不同的模式中,这是一个很好的做法吗?
- 20. 这是一个很好的集中DVCS工作流程吗?
- 21. 在数据库表中使用汇总列是常见的还是很好的形式?
- 22. 将正常形式与多个下拉列表组合
- 23. WebApp + Ionic for Mobile的Bootstrap。这是一个很好的组合吗?
- 24. 这是Redis的一个很好的用例吗?
- 25. 这是Dataflow的一个很好的用例吗?
- 26. 这是一个很好的使用继承的例子吗?
- 27. 在表格单元格中添加uiwebviews是个好主意吗?
- 28. 这样做是“更好的方式”吗?
- 29. 表单无权访问其值。这是正常的吗?
- 30. Rails3 - 单一形式的多个模型 - 这是做到这一点的正确方法吗?
+1的短语:“表中的数据是依赖于键,整个键,不过按键(帮帮我吧科德)。”真是一个伟大的线......我感到惊讶,我以前从来没听过。你做这件事或者你有一个来源? – 2009-02-03 13:23:26
我相信我第一次听到它在SQL Server 2005圣经中由Paul Nielsen - http://www.amazon.co.uk/Server-2005-Bible-Paul-Nielsen/dp/0764542567/ref=sr_1_1?ie=UTF8&s = books&qid = 1233667734&sr = 8-1 我只是做了一个搜索,找不到那个短语,但几乎可以确定它是来自这里的 – 2009-02-03 13:29:13
同意的,真棒短语+1。 – RedFilter 2009-02-03 13:41:19