mysql - 基于关联列值的唯一约束
问题描述
我有以下(简化的)数据结构:
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_id
,type
只能存在一次。
推荐阅读
- linux - 如何使用 perl 正确散列我的密码?
- python - 克隆时无法从 Heroku 中提取 sqlite 数据
- node.js - NestJS 应用程序如何监听与连接的微服务相同的端口?
- python-3.x - Vowpal Wabbit 的 CMAB 框架的默认学习器是什么?
- node.js - ubuntu 18.04 上的节点安装失败
- java - 不显示关闭文本。android案例视图
- android - 颤振:将 FAB 点击监听器传递给 Tabbar 小部件
- java - 无论我做什么,命令提示符都找不到我的 java 文件
- javascript - 使 convertto-html 表格片段可搜索和可排序
- reactjs - ReactJS / React Bootstrap / 按钮 / 链接