数据库设计规范讨论一之表设计
chump 2007-06-06 10:07:52 1.命名
1)许多建议以t或tb开头,为什么区分这个,难道是要区分嵌在代码中的sql语句中操作的对象是表还是视图?
2)是否要区分模块类型,比如系统、客户、合同,如命名为t_sm_***,t_cm_***等?
3)是否区分表的种类,比如有人把表分为业务表、基本表、辅助表等,不知作用何在?
4)是否使用下横线连接,比如t_a_ContType,好象这样书写比较困难些?
5)表名是否加s,比如Customers,好象MS老大就是这样命名哦。
6)是否使用缩写?更有甚者使用table1\table2等命名的方式?保密吗?
2.设计
1)一般是否需要有建立时间、建立者、修改时间、修改者这几个字段?有人认为这样对数据库空间的消耗比较大.
2)关于字段类型,哈哈有人建议只使用字符类型,如日期使用char(19)替代?
3)表中是否有必要设计时间戳字段?
4)如果使用用户编码作为主键有什么不好?
5)什么情况下使用代理主键,比如自增值比较好?
6)比如有合同表,有合同类型、业务员、销售部门、币种,后者什么情况下应该建立独立的表,否则是否在合同表中直接保存合同类型等即可?
哈哈,欢迎大家发表高见,分不够再开帖。