数据库设计规范讨论一之表设计

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)比如有合同表,有合同类型、业务员、销售部门、币种,后者什么情况下应该建立独立的表,否则是否在合同表中直接保存合同类型等即可?

哈哈,欢迎大家发表高见,分不够再开帖。
...全文
2375 55 打赏 收藏 转发到动态 举报
写回复
用AI写文章
55 条回复
切换为时间正序
请发表友善的回复…
发表回复
budong0000 2007-06-18
  • 打赏
  • 举报
回复
没意思
Andy__Huang 2007-06-17
  • 打赏
  • 举报
回复
我认为基本表的命名前缀不要加tb或tab之类,直接按意思命名;
其它表命名前缀加tb或tab都可以接受,后面加表的英文名,首个字母要大写,两个或以上的英文单的首个字母要大写,如tabOrderRequire

视图命名以小写vie开头,最容易区分

存储过程以proc开头,如果以sp_开头,以会系统的存储过程混淆,如sp_pkeys是系统存储过程

函数以fn_开头

触发器分三类,以tg开头,insert、update、delete的触发器命名为tgI_、tgU_、tgD_
这样一看就明白它的意思了



houyichong 2007-06-17
  • 打赏
  • 举报
回复
我以为是讨论范式问题呢
KKCOLION 2007-06-16
  • 打赏
  • 举报
回复
进来学习
areswang 2007-06-14
  • 打赏
  • 举报
回复
mark
chump 2007-06-14
  • 打赏
  • 举报
回复
期待您的建议.
young_ready 2007-06-08
  • 打赏
  • 举报
回复
关注
chump 2007-06-08
  • 打赏
  • 举报
回复
不错,大家继续啊!信息量足够的时候,我会综合一下大家的意见,供各位参考.
ma4r5t 2007-06-08
  • 打赏
  • 举报
回复
这个关注一下啦
zhj92lxs 2007-06-07
  • 打赏
  • 举报
回复
好多的钻石啊
netcup 2007-06-07
  • 打赏
  • 举报
回复
问题1和2楼主可参考匈牙利命名法.3,在SQL2000里也有INFORNATION_SCHEMA.可以分类.4\5和6这个看个人习惯,当然,在匈牙利命名法里也有叙述.建议最好不要怕麻烦,严格遵循标准, 习惯了就好,带来的好处是长久的

设计的1:这个根据要求,看有AUDIT的要求没.有就加,小型软件就无所谓.2和3都根据业务需要.4.主健是应该以用户感觉不到它的存在,但是它能保证数据的唯一性即是最好.5自增列根据情况,但是要注意它不能保证唯一性.6,楼主最好看下数据库的6个范式,先深刻理解下前3个就明白了.
chump 2007-06-07
  • 打赏
  • 举报
回复
希望得到您的高见.
自然框架 2007-06-07
  • 打赏
  • 举报
回复

比如说身份证号码,以前是十五位的,现在是十八位了。

另外身份证号还有重复的呢。
自然框架 2007-06-07
  • 打赏
  • 举报
回复
4)如果使用用户编码作为主键有什么不好?

为了避免风险,如果用户编码的规则发生变化了,怎么办?如果使用毫无疑义的字段(比如自增的)就可以不必担心用户编码的规则发生变化了。
metaza 2007-06-07
  • 打赏
  • 举报
回复
这贴好
ccluck 2007-06-07
  • 打赏
  • 举报
回复
非常顶一下
xiaoku 2007-06-07
  • 打赏
  • 举报
回复
偶跑了...
kubernetes-k8s 2007-06-07
  • 打赏
  • 举报
回复
绝对好贴,今后肯定用得着,学习了
yyed 2007-06-07
  • 打赏
  • 举报
回复
现在还能接分?
fengfeiwuwq 2007-06-07
  • 打赏
  • 举报
回复
非常顶一下
加载更多回复(35)

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧