程序员和数据库管理员产生了意见分析.
如下.程序员(J2EE)建议,在没有唯一ID的表中,都要建一个sequences ID.
数据库管理员认为,在可以不用建一个sequences ID的时候,都不建,用多个外建做联合主建.原因是:程序员方便程序控制,认比较有效率,数据库管理员认为浪费空间,是个bug,如果你现在设置的值不够大,程序到时候会完成崩溃.背景:是一个网上的会员系统,在前期市场上有过类似的,但基本上都失败了.不过我们对前景还是很乐观的.
数据库的表不会超过100个.希望大家能给个分析建议,谢谢.

解决方案 »

  1.   

    PS:系统是专业系统,针对特殊群体.但是用户是不能操作系统的,只有操作员才能操作系统.
    自己先up下,我觉得如果每天总共产生的ID超过10000,会不回有数据库管理员认为那种情况呢.
    sequences ID的长度现在设置为number10
      

  2.   

    觉得没有必要用sequence,不明白为什么是用sequence会比较有效率,在哪里体现了?
    多表连接的时候,也不大可能是用sequence的那一列去进行连接吧
      

  3.   

    如果只是要求查询结果的时候,数据结果的前面有一列序号,完全可以通过rownum来实现更何况,按照楼主的意思,sequence肯定不能是循环的,那么总有耗尽的一天:并不是成功插入系统的数据才会占用sequence的一个值,即使插入失败,sequence也会变成下一个值
      

  4.   

    Sequence 效率比较好,比如:
    create table TblTest(
    fd01 varchar(10),
    fd02 varchar(10),
    fd03 varchar(10),
    fd04 date,
    ...
    constraint pk_TblTest primary key (fd01,fd02,fd03,fd04)

    )create table TblRefTest(
    fd01 varchar(10),
    fd02 varchar(10),
    fd03 varchar(10),
    fd04 date,
    refFd01 varchar(50),
    ...
    constraint fk_ref_test foreign  key(fd01,fd02,fd03,fd04)  references TblTest(fd01,fd02,fd03,fd04))在这种情况下不如用一个seq自动生成主键了。ORacle 的索引效率上会比较好。