Sat*_*hya 4 database oracle database-design
我们在表上使用序列号作为主键.有些表我们并不真正使用主键进行任何查询.但是,我们在其他列上有索引.这些是非唯一索引.查询在WHERE条件中使用这些非主键列.
所以,我真的没有看到在这些表上使用主键的任何好处.我对SQL 2000的经验是,它用于复制具有一些主键的表.否则它不会.
我使用的是Oracle 10gR2.我想知道是否存在没有主键的表的副作用.
小智 9
表不需要主键.对数据库没有任何影响,因为表没有显式键,因为数据库中的每一行都有一个Oracle用于存储和某些内部引用的隐式唯一数据点.那是ROWID伪列.ROWID是一个唯一标识数据库中每一行的数据 - 有一些值得注意的例外.
我的数据库上的以下查询返回显示的数据:
select rowid from user$ where rownum <= 5; AAAAAKAABAAAAFlAAC AAAAAKAABAAAAFlAAD AAAAAKAABAAAAFiAAD AAAAAKAABAAAAFlAAE AAAAAKAABAAAAFlAAF
桌子上没有钥匙是非常必要的.我刚查询的Oracle10g数据库有569个没有主键或唯一键的系统表.DBA和开发人员决定如何在数据库表上创建密钥.我的项目中的开发人员总是创建主键,无论其有用性还是健全性.作为一名DBA,我只在有意义的地方创建密钥.
亲切的问候,
作品
在我的脑海中,如果没有唯一键,就不可能有外键,因此无法将表链接到其他表。事后更改此设置并不是微不足道的,因为访问此表的所有代码都可能受到影响,要么因为引用移位而根本不工作,要么执行不同的操作。另外,我相信我们在大学了解到(但这是 5 年前的事了),唯一索引对性能更好,因为行是分段的,而不考虑其内容。
归档时间: |
|
查看次数: |
14466 次 |
最近记录: |