suh*_*ano 3 mysql sql sql-server oracle database-design
设计数据库是否有一般的经验法则允许列作为空值与3nf规范化?我有一个列,其中列主要由空值(85%)组成,但表大小不超过10K记录(不是很大).它主要用于记录和记录保存,因此大多数事务将是插入和选择,没有更新.我正在尝试考虑性能和简化设计.在这种情况下,非规范化还是规范化会有很大的好处吗?不同的RDBMS表现不同吗?
避免NULL的原因有三个.按重要性排序(当然,我认为)是:
您想要正确建模数据.
您希望提供一个可以轻松生成正确应用程序的数据库.
您想节省磁盘空间.
你关心的是表现.
好的,有四个不同的原因!
在这四个中,我非常关注#1,非常关注#2(特别是因为我也一直是程序员)而且我真的不太关心#3,因为磁盘空间很便宜而且因为#1和#2为我删除了任何数据库中的大多数NULL.至于#4,我从不想牺牲性能的正确性 - 如果我不能确信这是正确的,我得到答案的速度并不重要.如果我无法在模型良好的SQL数据库中实现我的性能目标,那么SQL数据库可能是错误的工具.
所以对我来说最重要的问题是"单表方法是否正确地为您要存储的数据建模?" 同样重要的是"单表方法是否会使编写错误代码对数据库变得太容易?" 我想强迫自己(或任何追随我的程序员)必须将数据放在正确的位置.查看您的数据并回答这些问题,它应该可以帮助您确定正确的结构.
归档时间: |
|
查看次数: |
1029 次 |
最近记录: |