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