DataBase具有四个表的数据完整性

时间:2014-06-27 19:25:06

标签: php mysql doctrine-orm

我有四张桌子(产品,品牌,颜色和颜色产品) - 产品有一个品牌 - 一种颜色有一个品牌 - 颜色产品有一种产品和一种颜色

我看到的问题是颜色产品引用了颜色和产品,并且它们都引用了品牌。 如果相同颜色产品引用的产品和颜色引用2个不同的品牌,会发生什么?

我认为我的数据库很糟糕,但我不知道如何修复它。 我使用Doctrine 2 ORM,我在他们的文档中读到,如果可能的话,应该避免使用复合主键。你能看到解决我问题的方法吗?

谢谢

1 个答案:

答案 0 :(得分:0)

在我看来,不需要有颜色的品牌。

它为您提供了两种选择,将品牌存储在产品中,或将品牌存储到颜色产品中。

我认为将品牌仅存储在产品中是有意义的,它会完全解决您的问题,因为颜色与品牌完全无关,因此将品牌与颜色产品相关联并不一定有意义。