mysql - 基于关联列值的唯一约束

标签 mysql unique-constraint

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

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

产品表可能看起来像这样

| 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 文档, 约束只对一种关系起作用,对跨关系不起作用。

最佳答案

我在发布这个问题后立即意识到了解决方案。可以对属性关系进行约束,使得每对product_idtype只能存在一次。

关于mysql - 基于关联列值的唯一约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56303840/

相关文章:

php - 如何使用 php 在 phpmyadmin 中插入数组的数组

php - 使用 php 将 mysql 转储导入到机器上

php - 设置在重复输入尝试唯一字段时导致 php 错误?

oracle - 多列的唯一约束

php - 如果在字段中找到指定值,则拒绝 PDO MySQL 语句?

php - Doctrine2 多对多逆向查询生成器

mysql - 如果语句为 1,则运行特定的 SQL 语句

mysql - 带前导零的 LPAD

kotlin - android,使用Room和kotlin,如何在字段上添加唯一约束

mysql - 在创建 UNIQUE 键之前如何定位重复记录?