论坛首页 Java企业应用论坛

大家觉的表的主键名字用id好,还是表面_id好?给个意见呗

浏览 3957 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2013-03-28  

 

大家觉的表的主键名字用id好,还是表面_id好?给个意见呗?

 

我在开发开源软件Java的时候看见表的主键都是“表面_id”,表的主键使用“id”,哪一个更加合理一点啊

   发表时间:2013-03-28  
你觉得喝粥,是放点豆子好,还是什么都不放好?给个意见 吧?
0 请登录后投票
   发表时间:2013-03-29  
我觉得id好
0 请登录后投票
   发表时间:2013-03-29  
建议pk打头 比如 表名是cost 那么主键 pk_cost_id,总之有规范就行。
0 请登录后投票
   发表时间:2013-03-29  
sqlite 好像用_id(必须)
mysql 无所谓自增就好
0 请登录后投票
   发表时间:2013-04-12  
其实这是一个很重要的问题。
说白了,是概念模型中如何查找一个对象(或一条记录)的问题。
表名_ID,可以全局检索对象。
ID, 则在各表之间重复。
比如,我上层有一个应用,需要显示所有表,每条记录进行展示。我肯定得在应用层存储ID,这个时侯,如果是表名_ID,则应用层设计起来容易得多。
0 请登录后投票
   发表时间:2013-04-26  
这个问题属于数据库设计命名规范的问题,我见过的项目,有所有主键统一叫 id 的,结果一个主键在其他表中出现的时候,就是另外一个名称了,在sql的结果列中出现的时候,也需要起别名,这样系统中就能见到各种类似以下的代码:
   select A.id aid, B.id bid, C.id cid, D.id did from A,B,C,D where B.aid = A.id and C.bid = B.id and D.cid = C.id;

还有就是表名_id 模式的,这样一个主键在其他表中出现的时候,字段名基本上是一致的,sql 语句中也不需要用别名。
个人比较倾向于第二种。

其他类似的,还有表名以“T_”开头,视图名以“V_”开头,感觉都是很别扭的命名规范。

数据库设计的时候,如果用英文单词命名,最好就统一都用英文单词,不要出现中文拼音或拼音缩写。
我还见过一个税务系统的数据库,统一用中文拼音缩写命名表名和字段名的,因为有一个统一的规范,感觉也没问题。

具体数据库的命名规范,有一本书《SQL编程风格》,可以看下。
附下载地址:http://down.51cto.com/data/414364
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics