数据库设计规范讨论二之表设计
chump 2007-06-07 10:52:33 1.关于主键
1)从效率角度看,整数类型的主键应该比定长或变长类型的字符主键效率高,哪位有测试过效率一般会高多少?
2)通常来讲是否我们一般应该选择代理主键,比如自增值、GUID等?
3)如果使用用户自定义编码作为主键有什么不好?
4)如果是复合主键,比如有4个以上的字段组成主键,我们是否应该考虑用单一主键来代替,比如GUID?或者考虑反范式?
2.关于冗余
1)比如有一个订单,我们考虑一个订单有一个产品系列,这个系列的产品有很多规格,每个规格有自己的单价,我们要看这个订单包含多少规格,
包含多少产品数量,订单包含多少金额,我们是否应该把这些值包含在主表中?如果不包含,计算的效率估计会差多少?如果要包含,我们可以
通过哪些手段来保证数据的一致性?
2)在考虑冗余设计时,我们一般需要考虑哪些因素?
3.关于参照完整性
1)比如客户表,许多业务都会用到,一般我们是否应该把这些表全部和客户表关联?这样对查询和更新效率分别有多大的影响?
看过MS CRM的设计,几乎所有的表都和用户表作了关联?
2)我们是否应该选择级联更新或删除?
哈哈,欢迎大家发表高见,分不够再开帖。