oracle 一张表可以有几个主键
1个回答
展开全部
首先,你想一下主键是什么,那是表示一个实体的唯一标识,有别于其他记录的字段内容。
其次,如果其他表的主键也是这个表的主键,那是否意味着这两个表的粒度就是一致的。如果按照这种设计,那么相当于一个实体有两个对象同时维护。例如汽车这个表,其中一个表描述特性等字段,另外一个表描述厂家信息等字段。不良的后果便是,(1)如果两张表数据量一致,一旦发生范围的变化,两张表都需要维护。(2)如果两张表数据量不一致,那么便失去了可靠性,不知道那张表才是一个全集。
但有种例外,那就是一张表是全集,另外一张是范围子集。通常这种情况是由于性能问题导致的,例如原来一张表就有1千万,查不动,需要的范围只有1万,因此另外设计一张小表专门存放那1万,查询起来就不费力了。
其次,如果其他表的主键也是这个表的主键,那是否意味着这两个表的粒度就是一致的。如果按照这种设计,那么相当于一个实体有两个对象同时维护。例如汽车这个表,其中一个表描述特性等字段,另外一个表描述厂家信息等字段。不良的后果便是,(1)如果两张表数据量一致,一旦发生范围的变化,两张表都需要维护。(2)如果两张表数据量不一致,那么便失去了可靠性,不知道那张表才是一个全集。
但有种例外,那就是一张表是全集,另外一张是范围子集。通常这种情况是由于性能问题导致的,例如原来一张表就有1千万,查不动,需要的范围只有1万,因此另外设计一张小表专门存放那1万,查询起来就不费力了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询