基于关联列值的唯一约束

时间:2019-05-25 10:10:53

标签: mysql unique-constraint

我具有以下(简化的)数据结构:

Property                    Product
-----------   n <----> 1    -------
product_id                  manufacturer
type                        name
value                    

products表可能是这样的

| name         |
|--------------|
| iPad 2       |
| iPhone 6     |

并且关联的属性可能是

| product_id | type        | value |
|----------------------------------|
|      1     | RAM         | 16GB  |
|      1     | CPU         | A11   |
|      1     | Screen Size | 10"   |
|      2     | Cellular    | yes   |
|      2     | Screen Size | 5.5"  |

在MySQL中是否可以创建约束,以便每个产品最多可以具有每种属性类型一次(例如,一个产品不能具有多个屏幕尺寸关联。据我所知,MySQL文档,约束仅适用于一种关系,而不适用于跨关系。

1 个答案:

答案 0 :(得分:3)

发布此问题后,我立即意识到了解决方案。可以将约束放在属性关系上,以便每对product_idtype只能存在一次。