数据库 – 如何在“菱形”关系系统中保持外键关系的一致性
发布时间:2021-01-19 15:15 所属栏目:[编程] 来源:网络整理
导读:考虑这种情况:从销售人员处购买汽车.销售人员在陈列室(仅在一个陈列室)工作.陈列室隶属于制造商,仅销售该制造商生产的汽车.同时,Car是特定型号,而型号由制造商制造. 限制R:汽车模型的制造商必须与汽车销售员的陈列室附属制造商的制造商相同. 该图显示了明显
考虑这种情况:从销售人员处购买汽车.销售人员在陈列室(仅在一个陈列室)工作.陈列室隶属于制造商,仅销售该制造商生产的汽车.同时,Car是特定型号,而型号由制造商制造. 限制R:汽车模型的制造商必须与汽车销售员的陈列室附属制造商的制造商相同. 该图显示了明显的外键关系. ----> Manufacturer <---- | | | | Showroom | ^ | | Model | ^ Salesperson | ^ | | | --------- Car ---------- 你如何执行限制R?您可以添加外键关系Car – >制造商.然而,汽车的制造商可以通过在“钻石”周围以这种或那种方式连接表来建立,所以这肯定不会被规范化吗?然而,我不知道如何强制执行约束. 解决方法如果我正确地理解了这个问题,那就应该接近了.这里有一些关键的细节 -- -- Keys for SalesPerson -- alter table SalesPerson add constraint PK_salesperson primary key (PersonID),add constraint AK1_salesperson unique (ManufacturerID,ShowRoomNo,PersonID),add constraint FK1_salesperson foreign key (PersonID) references Person (PersonID),add constraint FK2_salesperson foreign key (ManufacturerID,ShowRoomNo) references ShowRoom (ManufacturerID,ShowRoomNo) ; -- -- keys for Sale table -- alter table Sale add constraint PK_sale primary key (SaleID),add constraint FK1_sale foreign key (BuyerID) references Person (PersonID),add constraint FK2_sale foreign key (ManufacturerID,ModelName,ShowRoomNo) references CarDisplay (ManufacturerID,ShowRoomNo),add constraint FK3_sale foreign key (ManufacturerID,SalesPersonID) references SalesPerson (ManufacturerID,PersonID) ; 【免责声明】本站内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。 |
相关内容
网友评论
推荐文章
-
PHP基于PDO调用sqlserver存储过程通用方法【基于Yii框架】
本篇章节讲解PHP基于PDO调用sqlserver存储过程的方法...[详细]
-
sql-server – 我注意到人们提到使用VPS的MSSQL Server并不是一
你能否详细说明一下? 解决方法 这一切都取决于您的应...[详细]
-
我想做的就是从此函数获取名字的结果,但是感觉太多的...[详细]
-
如何使用CASE WHEN在MySQL和PDO中运行更新查询. 以下...[详细]
-
我正在尝试使用hadoop和hive创建一个docker容器.这是...[详细]
-
本篇章节讲解PHP实现的简单在线计算器功能。供大家参...[详细]
-
我有一个2列的表farmer_crops,用于存储农民与其种植的...[详细]
-
我最近开始研究MySQL,虽然我已经阅读了一些有关数据库...[详细]
-
在我的MS SQL 2008 R2数据库中,我有这个表: TABLE [H...[详细]
-
我从这里生成一个视图: create or replace view date...[详细]
热点阅读