最近接触了一个项目,里面的数据库设计让我“大开眼界”,很多表没有主键 id,取而代之的是复合主键,也就是几个字段同时作为主键,比如说: A 表:
name
age
addr
主键是 name+age
B 表:
name
age
money
something
xxx
主键也是 name+age
实际上 B 表是 A 表的附属表,也就说是补充 A 表的内容,或者是关联到其它表
恕我愚昧,不知道这种设计有什么好处,我觉得用 id 当主键更简介方便,便于修改数据,比如上面的例子有时候还有修改 age 的需求,这时候就非常麻烦了,难道这是反范式化设计,故意做的数据冗余,我不敢苟同,咱也不敢问,咱也不敢说。
各位大佬,求打醒!!!
