笔记:oracle关于使用代理主键还是逻辑主键的好?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了笔记:oracle关于使用代理主键还是逻辑主键的好?相关的知识,希望对你有一定的参考价值。

总结几点体会:


第一点:统一。

    最近参与的项目,其公共模块(单位表、人员信息表等)全部使用的是代理主键,而集成进来的数据模型又使用的是逻辑主键。为了最大限度的使用已经写好的存储过程、函数等对象,公共模块的数据必须按照一定规则映射一份到集成进来的模块中,这就增加了数据库维护的工作量和难度;java程序使用的持久层是hibernate,在设计javabean的时候也要考虑这种情况,是的java程序员在处理单位信息的时候不得不建立2各javabean,还需要在java程序中进行手动转换,非常耗时。

    针对这种现象,无论是使用代理主键还是使用逻辑主键,数据模型的设计必须要统一。混乱的主键策略会给数据库开发人员、应用程序开发人员造成混乱。


第二点:应对数据模型的变更——代理主键。

    从实际应用来说,任何一个实体属性都是可能变化的。如:客户信息表使用的是8位客户编号作为主键,可是用户业务扩展,8为编码已经不够使用,此时就要调整主键。试想如果使用的是代理主键,那么业务上的调整就不需要调整主键。

    从这个角度来说,代理主键优于逻辑主键。


第三点:习惯。

    在实际编写SQL语句过程中,还是喜欢逻辑主键,因为它能帮助我尽快的过滤数据。



本文出自 “我的程序员之路” 博客,请务必保留此出处http://neilcn.blog.51cto.com/5327307/1881576

以上是关于笔记:oracle关于使用代理主键还是逻辑主键的好?的主要内容,如果未能解决你的问题,请参考以下文章

关于mybatis用mysql时,插入返回自增主键的问题

自然主键和代理主键的区别

自然主键和代理主键的区别

自然主键和代理主键的区别

关于oracle中 根据一个表的主键数据同步更新另一个关联表的字段。

oracle在建表时如何指定主键的索引名和主键的表空间