我有三个实体
- 工人
- 学生
- 地址
每个工人可以有多个地址。每个学生也可以有多个地址。每个地址可能是x个学生和y个工人的地址。
我的问题是,最佳数据建模是什么样子的。将所有东西的多对多关系实现在一个联合表中:
ID | Address_ID | Worker_ID | Student_ID
当ID为PK时,Worker_ID或Student_ID可以为空。
或者像下面这样分成2个表:
Address_ID | Worker_ID
PK是指主键,即地址ID和工人ID
并且
Address_ID | Student_ID
PK 是 地址_ID 和 学生_ID
哪个选项是最好的,可能为什么?
提前感谢。