一年多没用ORACLE了,感觉陌生了很多啊借此贴,散点分,不多,回忆下以往在这里的岁月主键大家一般都怎么选择:
1、是一个没有具体含义的唯一号码还是与表内容相关的唯一号码?
2、数据量较大的情况下用什么类型?
3、长度有什么讲究?谢谢,希望有经验的朋友讲讲。
1、是一个没有具体含义的唯一号码还是与表内容相关的唯一号码?
2、数据量较大的情况下用什么类型?
3、长度有什么讲究?谢谢,希望有经验的朋友讲讲。
解决方案 »
- [请教:]如何在数据表的字段之间追加新字段
- 函数中如何获得 CURSOR 游标的大小 ???
- 本人写了一个包怎么会报错,请高人指点!!
- 如何让一个job每天凌晨两点执行啊?
- 列出所有的表
- 请问oracle10i中什么地方设置字符集,来显示中文
- java的sql.ResultSet无法转换成Oracle的.OracleResultSet,急救!!!
- 最初级问题,请帮帮我..................急................谢了
- 用SQL*Plus创建存储过程,提示“警告: 创建的过程带有编译错误。”,怎样让它显示详细的出错信息?
- 求助:P4cpu,2000AdvanceServer,oracle9i(三张盘的那种),安装n此出现错误无数,不成功?可别人说他安装成功了啊?痛!!!
- 创建Instance 为什么不能生成control文件
- 今天去微软面试,竟然考了有关Delphi的题,难道微软真的要接收Delphi吗,难道AndersHejlsberg要重新打造Delphi吗
如果数据中能够提供这样一个唯一的字段,而且以后都不会唯一不变,那么就用这个字段,
否则就用一个没有具体含义的唯一号码。2、数据量较大的情况下用什么类型?
如果数据量在千万级或者上亿,那么最好用 NUMBER,否则如果用VARCHAR2,单单存储主键就需要几十M甚至上百M空间3、长度有什么讲究?
如果采用数值型,那就取决于你的数据量。
如果是VARCHAR2,最好是32字节,通用一些,比如MD5值就是32字节
如果数据中能够提供这样一个唯一的字段,而且以后都不会唯一不变,那么就用这个字段,
否则就用一个没有具体含义的唯一号码。
——〉这种情况适用于一些基础信息表,通常情况下表的主键会是两个以上的,当然这样设定的主键都是有含义的,除非就是想只设定一个主键。2、数据量较大的情况下用什么类型?
如果数据量在千万级或者上亿,那么最好用 NUMBER,否则如果用VARCHAR2,单单存储主键就需要几十M甚至上百M空间
——〉通常选定的主键以CODE居多,所以使用NUMBER类型是一个很好的选择,另外特别说一下,如果有可能需要把日期定为主键,最好使用VARCHAR2类型来存储,使用过后你会发现有很多优点。3、长度有什么讲究?
如果采用数值型,那就取决于你的数据量。
如果是VARCHAR2,最好是32字节,通用一些,比如MD5值就是32字节
——〉长度的设定,应该遵循这样的原则,能少则少,能用CHAR的就不用VARCHAR2,也许现在的各方面的软硬件的性能都有了长足的发展,但是养成节约资源的习惯还是好的。
一般是用number了,varchar2也可以,其他的不适合