在较为复杂的业务场景中存在联合主键,在db设计的时候是采用联合主键还是使用ID自增比较好?请各位大神指点
在应用程序实现上自增ID会方便很多,在数据库执行效率及业务理解层面怎么理解??
我觉得联合主键完全可以不用,设计数据库时基本约定就是有自增ID主键,
ID自增完全够用了,而且方便,联合主键不容易维护,操作也不方便。
我觉得 从业务上讲 如果有联合主键的必要的话 还是联合主键吧 因为可以保证联合主键对应的数据没有重复 如果用自增的话可能会有重复的情况。比如 本来是一个表的字段A和字段B是联合主键 那么数据可以是 1,1;1,2;1,3.但是如果设计自增ID的话有可能出现1,1;1,2;1,1;否则的话有设计自增ID时还需要判断那2个字段是否重复。当然如果数据不在乎重复的情况下就可以设计自增ID
从来不用联合主键,也基本不用自增ID的飘过。
卧槽 自增都不用 大神啊
@MrLenon: 自增要在代码中及后期功能中解决好多问题,不用自增代码简单多了。
比如:
1、自增ID,你保存后还得取一次数据,否则你不知道ID是多少,
在制作父子表UI的时候,显得很麻烦。
2、当你需要数据迁移的时候,无法使用SQL Server直接进行,你必须自己写代码,维护表间关系。
这两个是我不使用自增ID的主要原因。
用GUID吧,如果是sqlserver的话。其实还是看你业务情况怎么走。并且所谓的自增,你考虑一下,你主键是否和业务紧密性了。
GUID,便于数据的移植,已经大数据的需要.
INT64,基本上够用了. 2的63-1已经够大了.性能好.数据移植不方便.
当事情绝对化的时候,人就死了
个人觉得用一个guid来作为主键即可,这样在数据处理会变得方便