我公司总部用的是oracle数据库,每张客户表里serv_id 字段是客户的唯一标识,但是,serv_id的值在表中并不是唯一的,一个serv_id 的值可能有都条记录。 
问过系统厂家的人员,他们说serv_id 就是主键 
我就觉得奇怪了,难道oracle 的主键允许一个值存在多条记录么? 
(怕被公司的同事笑话,所以就到这里来问了) 
我截了图,大家可以看下,这个是在pl/sql下的表信息 
大家可以看到 primary key 下是空的,没有主键 
这张表serv_t是我们的客户资料表 
我们的系统厂家是朗新公司,这个表没有主键,我猜应该不会犯这个错误吧? 
应该只有我不懂的地方,请大家讨论讨论。

解决方案 »

  1.   

    no primary key in that table.maybe no need.
      

  2.   


    I had seen a system that all talbe has no forigen key
      

  3.   

    哈哈,我想到这个oracle区,可能针对性强一点原来这不一定非要有主键的啊,的确,serv_id就是索引
    那表一个,SERV_ID通常都是 有好几条记录
    serv_id    state
    123456      F0A  (表示正常)
    123456      F0X  (表示消户)
    123456      F0H  (表示归档)
    123456      F0H  (表示归档)
    如果真象大家所说,不设置主键可提高速度,那么就可以解释了
    因为毕竟我们每天都有那么多用用户新装,交费,等等,速度是要考虑的
    只不过,这样在我取客户清单的时候,通常都要关联表,就会给我造成很大的麻烦.
      

  4.   

    我们公司(SAP)的项目里的公司用的数据库都没有primary key
    primary key 靠ERP软件在配置的xml文件里面设置
    我也做过一些people soft 的项目,同样没有主键
    而且大多数公司为了实行 live data access, 一个数据库里面table 都没有几个(n<20)
    全部都用view 或者 Materialized view (n>50).
      

  5.   

    ls 的是在SAP工作的?
    牛哦,可惜我所在的企业没有用你们的
    某个省的电信公司
    用的AMDOCS狼星公司搞的。
      

  6.   

    个人感觉SAP不如orical发展进景大。
      

  7.   

    请问视图就是view吗?
    不好意思,问一个很弱智的问题
      

  8.   

    恩,的确是这样子的
    oracle自从收购了people soft 之后在ERP领域越来越强了
    虽然现在市场占有率还不是很大
    而且SAP的BAPI太难用,懂得人很少
      

  9.   

    呵呵,是电信公司.
    那个就是表,不是视图.
    看样子ORACLE强,就应该去搞个ORACLE的认证来耍耍.