我在网上看到这么一段话,是关于数据库主键怎么设计的问题,“不要使用跟业务相关的字段作为主键,因为无法预测在项目的生命周期中,哪些业务字段会因项目的业务需求发生重复或重用的情况”。
请问这段话中的重复和重用分别是什么意思。
重复就是有相同的,比如姓名,一开始100个员工没有重名的,但是后来入职一个员工有重名的,那系统就崩了
重用就是重复使用,比如张三离职了,又来了一个人也叫张三,那么老张三的信息会匹配到新张三身上,数据就全乱了
所以员工应该以ID进行区分,而不是自然信息
其他业务也类似,不要用自然属性去作为唯一判定,那必然是要发生重复和重用的
比如说,你原来有2个门店,各自用了一套独立的数据库,现在想把两个门店数据打通
那么就可能出现主键重复的问题。
重用,比如说你希望把一个给单用户使用的数据库,做成多租户的。