我一般设计数据库都习惯设置一个自增的ID作为数据库主键。
看到一句话主键不要与业务逻辑有所关联
,一直不理解,这边做个笔记。
这边主键主要指一个表一定要有个逻辑主键,具备唯一性,避免需要使用联合主键才能确定一条记录。
比如一个商品表,需要使用产品分类id,供应商id作为联合主键才能确定唯一一条记录,这个在业务重构,代码修改等时候,会是一个灾难。
主键的两个类型
逻辑主键(surrogate key):无意义的字段,即自增长字段,即identity。
__业务主键(natrual key):__比如订单号,产品的id,用户id等。