php - 数据库 四表数据完整性

标签 php mysql doctrine-orm

我有四个表(产品、品牌、颜色和颜色产品) - 一种产品有一个品牌 - 一种颜色有一个品牌 - 一种颜色产品有一种产品和一种颜色

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

我想我的数据库坏了,但我不知道如何修复它。 我使用 Doctrine 2 ORM,并且在他们的文档中读到,如果可能,应避免使用复合主键。您能找到解决我问题的方法吗?

谢谢

最佳答案

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

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

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

关于php - 数据库 四表数据完整性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24459428/

相关文章:

php - 多维数组+Foreach

PHP PDO MySQL : Insert statement runs without error, 没有发生插入

java - Hibernate查询日期只比较月份

mysql - 选择行并在同一查询中更新它们?

symfony - Doctrine 2 模式更新产生 MySQL errno 150,外键约束

mongodb - 如何配置灵活性以使用 Doctrine 的 MongoDB ODM?

PHP 数组键更改

php - 如何设计这个MySQL结构?

mysql - mysql 截断表后无法访问数据库

symfony - 如何在参数转换器中禁用原则过滤器