我一般设计数据库都习惯设置一个自增的ID作为数据库主键。

看到一句话主键不要与业务逻辑有所关联,一直不理解,这边做个笔记。

这边主键主要指一个表一定要有个逻辑主键,具备唯一性,避免需要使用联合主键才能确定一条记录。

比如一个商品表,需要使用产品分类id,供应商id作为联合主键才能确定唯一一条记录,这个在业务重构,代码修改等时候,会是一个灾难。

主键的两个类型

逻辑主键(surrogate key):无意义的字段,即自增长字段,即identity。

__业务主键(natrual key):__比如订单号,产品的id,用户id等。