一年多没用ORACLE了,感觉陌生了很多啊借此贴,散点分,不多,回忆下以往在这里的岁月主键大家一般都怎么选择:
1、是一个没有具体含义的唯一号码还是与表内容相关的唯一号码?
2、数据量较大的情况下用什么类型?
3、长度有什么讲究?谢谢,希望有经验的朋友讲讲。

解决方案 »

  1.   

    1、是一个没有具体含义的唯一号码还是与表内容相关的唯一号码?
    如果数据中能够提供这样一个唯一的字段,而且以后都不会唯一不变,那么就用这个字段,
    否则就用一个没有具体含义的唯一号码。2、数据量较大的情况下用什么类型?
    如果数据量在千万级或者上亿,那么最好用 NUMBER,否则如果用VARCHAR2,单单存储主键就需要几十M甚至上百M空间3、长度有什么讲究?
    如果采用数值型,那就取决于你的数据量。
    如果是VARCHAR2,最好是32字节,通用一些,比如MD5值就是32字节
      

  2.   

    1、是一个没有具体含义的唯一号码还是与表内容相关的唯一号码?
    如果数据中能够提供这样一个唯一的字段,而且以后都不会唯一不变,那么就用这个字段,
    否则就用一个没有具体含义的唯一号码。
    ——〉这种情况适用于一些基础信息表,通常情况下表的主键会是两个以上的,当然这样设定的主键都是有含义的,除非就是想只设定一个主键。2、数据量较大的情况下用什么类型?
    如果数据量在千万级或者上亿,那么最好用 NUMBER,否则如果用VARCHAR2,单单存储主键就需要几十M甚至上百M空间
    ——〉通常选定的主键以CODE居多,所以使用NUMBER类型是一个很好的选择,另外特别说一下,如果有可能需要把日期定为主键,最好使用VARCHAR2类型来存储,使用过后你会发现有很多优点。3、长度有什么讲究?
    如果采用数值型,那就取决于你的数据量。
    如果是VARCHAR2,最好是32字节,通用一些,比如MD5值就是32字节
    ——〉长度的设定,应该遵循这样的原则,能少则少,能用CHAR的就不用VARCHAR2,也许现在的各方面的软硬件的性能都有了长足的发展,但是养成节约资源的习惯还是好的。
      

  3.   

    2、数据量较大的情况下用什么类型?
    一般是用number了,varchar2也可以,其他的不适合