全,
我对其他数据库有很多编程/管理经验: MySql、MSSQL、PostGres和一个不会被命名的。我只是对甲骨文没有多少经验。
我的任务是设计一些web应用程序和支持数据库表。这些表是使用ER图设计的,并发送给开发组以供实现。当他们发回拟议的表创建语句时,我看到了两件事,这在我看来是不对的。主键是NUMBER(5),序列将MAXVALUE设置为99999。
我原以为MAXVALUE会被省略,以支持NOMAXVALUE主键列,比如NUMBER(*,0)或LONG。由于我在甲骨文表格设计方面的经验不多,你能给我提点建议吗?
由衷地
克里斯托福霍奇
编辑感谢您提供关于LONG的信息。我将确保使用数字,但我仍然不清楚定义它的最佳方法:NUMBER、NUMBER(*,0)或NUMBER(9)等等。
发布于 2011-12-14 16:44:21
我同意您的观点:由于列是保存从序列中生成的代理键,5位限制的唯一可能用途是将表中允许的行总数限制在100,000以下--这似乎是不正确的。它当然不会给性能或空间效率带来任何好处。可能这只是他们的ERD工具DDL生成器的默认设置。
不要使用LONG:在Oracle中,这是一种过时的、过时的存储大型文本字符串的方法(而CLOB现在是首选的)。
发布于 2011-12-14 16:50:10
如果是我,我不会指定数字的大小,但这可能更多的是懒惰(设置它,忘记它),而不是一个良好的设计实践。
但是“长”会引起问题。在Oracle中,"long“是不推荐的字符数据类型。这与其他语言/系统中用于数字的长数据类型不同。这很棘手。
https://stackoverflow.com/questions/8507958
复制相似问题