以前,我看别人的设计或者大部分书籍,上面一般都是用ID或者xxxNO来定义主键,我也就跟着那样定义。后来,在《数据库系统原理》这本书里,我看到了另外一种命名方法,就是x#,如STUDENT表的主键就命名为S#。而且,在外键处也使用原主键名,如COURSE表的字段为(C#,S#,SCORE)。
请问,这两种命名规则的利弊有哪些?它们哪个更好一点?
希望大家积极讨论。

解决方案 »

  1.   

    用id或no只是习惯的问题,前辈们遗留下来的习惯
      

  2.   

    定名字当然是按照规范 并考虑到大家公认的习惯. 比如你定个特殊符号也可以, 但是写程序的时候时候方便? 应该考虑. 当然你使用引号,使用保留字,使用#$&*空格等也可以,但是使用的时候可能会不方便. 所以还是尽量按规范和大家都遵守的习惯.
      

  3.   

    我们延续已有项目的规定,使用"object_id"的方法。
    不太建立表明中有"#"字符,对编码人员编码不利。
      

  4.   

    大家习惯用id,no什么的,其实没有定式,只要非关键字/保留字就可以了
      

  5.   

    定义吗,最好有意思了,我们这一般都是表名_id
    比如users
    users_id
      

  6.   

    我没弄明白楼主要的是主键字段的命名规范还是主键的命名规范!
    主键、外键、唯一索引。一般都是"PK_表名"、"FK_父表名缩写_子表名缩写"、"UK_表名"如果表名太长就用缩写。要是主键字段的话,要根据字段的实际意义来命名。
      

  7.   


    我认为这样定义用ID或者xxxNO来定义主键,好一些,因为大家都习惯这样定义
    用x#定义,书上虽然有,但我还没有见有人这样实用过看到这段代码,就能够理解其中这个字段要表达的意思,这是最好的;所以x#这种表达方式并不实用
      

  8.   

    主键:  pk_表名
    外键:  fk_表名
    唯一:  uk_表名
    check: ck_表名