首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于在Oracle 11g中定义主键的请求建议

关于在Oracle 11g中定义主键的请求建议
EN

Stack Overflow用户
提问于 2011-12-14 16:25:28
回答 2查看 925关注 0票数 1

全,

朗读 几个 其他员额在向你提出我的问题之前。

我对其他数据库有很多编程/管理经验: MySql、MSSQL、PostGres和一个不会被命名的。我只是对甲骨文没有多少经验。

我的任务是设计一些web应用程序和支持数据库表。这些表是使用ER图设计的,并发送给开发组以供实现。当他们发回拟议的表创建语句时,我看到了两件事,这在我看来是不对的。主键是NUMBER(5),序列将MAXVALUE设置为99999。

我原以为MAXVALUE会被省略,以支持NOMAXVALUE主键列,比如NUMBER(*,0)LONG。由于我在甲骨文表格设计方面的经验不多,你能给我提点建议吗?

由衷地

克里斯托福霍奇

编辑感谢您提供关于LONG的信息。我将确保使用数字,但我仍然不清楚定义它的最佳方法:NUMBERNUMBER(*,0)NUMBER(9)等等。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-14 16:44:21

我同意您的观点:由于列是保存从序列中生成的代理键,5位限制的唯一可能用途是将表中允许的行总数限制在100,000以下--这似乎是不正确的。它当然不会给性能或空间效率带来任何好处。可能这只是他们的ERD工具DDL生成器的默认设置。

不要使用LONG:在Oracle中,这是一种过时的、过时的存储大型文本字符串的方法(而CLOB现在是首选的)。

票数 1
EN

Stack Overflow用户

发布于 2011-12-14 16:50:10

如果是我,我不会指定数字的大小,但这可能更多的是懒惰(设置它,忘记它),而不是一个良好的设计实践。

但是“长”会引起问题。在Oracle中,"long“是不推荐的字符数据类型。这与其他语言/系统中用于数字的长数据类型不同。这很棘手。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8507958

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档