我的问题可能很愚蠢,因为我认为这是一个非常常见的设计问题,我想有一个简单而常用的解决方案:
- 我有一张桌子 Producer 和一张桌子 Movie
- 一位制片人制作了许多电影
- 一位制片人在他制作的电影中拥有一部最喜欢的电影
我如何在 MySQL 中实现它?
- Producer 和 Movie 之间只有一个 ONE-TO-MANY 关系,加上 Movie 表中的“favorite”布尔属性
- 一个一对多关系表示“已生产”关系,一个一对一关系表示“最喜欢”关系
第一个方案对我来说似乎更自然,但是当制片人想要改变他最喜欢的电影时,我想第二个方案更有效。使用解决方案 #2 找到制片人最喜欢的电影应该更有效。
我错过了什么?有没有最好的解决方案?如果不是,在哪种情况下我应该使用解决方案 #1 和解决方案 #2?
(当然,我的问题比上面的例子要复杂一些......)