我正在为一个网站设计一个数据库,其中性能是重中之重。
关键功能基于两个表。
并且这些表具有多对多关系。
为了拆分它,我添加了一个额外的表 Table1_Table2,然后在每个关系的基础上保存两个表主键的组合。
例如,我将所有汽车都放在 Car 表中,并将所有颜色都放在颜色表中
车桌
ID(PK) - 姓名
1 - 宝马
2 - 梅赛德斯
3 - 大众
4 - 奥迪
颜色表
ID(PK) - 颜色
1 - 蓝色
2 - 绿色
3 - 黑色
4 - 黄色
对于多对多关系,我这样做了:
Car_ColorTable
ID(PK) - CarID - ColorID
1 - 1 - 2
2 - 1 - 4
3 - 2 - 4
4 - 3 - 1
5 - 4 - 1
6 - 4 - 3
7 - 4 - 3
这是一个好的设计考虑:
1)性能是重中之重。
2)表会有大量数据(两个表都有超过100万条记录,你可以想象Car_ColorTable最终会有多少行。
如果上述设计不是解决方案,我应该如何设计?