mysql - 有没有办法防止涉及多列的 SQL 数据库中的重复条目?
问题描述
我有一个地址数据库表,每个地址都被设置为将其拆分为其组成部分,例如:
Address ID(PK, AI)
Customer ID
Street Number
Street Name
City
etc.
我想知道添加数据以避免这些值的重复组合的最佳方法是什么?
我的客户可能有多个地址,但我希望每个组合都是唯一的。
当整行等于另一行时,是否有某种方法可以引发错误?
谢谢
解决方案
这是一个多对多的关系:
一种方法是拆分为 3 个表:
Customers:{
Customer ID (PK)
}
Address:{
Address ID(PK)
Street Number
Street Name
City
}
CustomerAddress{
CustomerID (FK)
AddressID (FK)
(AddressId, CustomerID) = PK
}
(AddressId, CustomerID) = PK
将确保 (customer <-> address) 的组合是唯一的
推荐阅读
- javascript - Ajax 找不到 PHP 文件位置
- javascript - 有没有办法使用 Javascript 获取私有 IP
- .net - 如何在 Blazor 组件 HTML 属性中转义 @?
- numpy - 从python中的测试标签中删除零值
- ios - 如何取消选择 NavigationLink 中的列表按钮
- html - 三里等宽
- swift - 如何设计一个字符串类型扩展来表示一周中的某一天并返回相应的数字?斯威夫特
- php - PHP 搜索查询结果不显示撇号
- ios - 如何在图像完全加载 iOS Swift 之前隐藏 tableview?
- python - 在 python 中实现用于局部对齐的 Smith-Waterman 算法