首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将“至少一个”约束(在ER中)转换为SQL?

如何将“至少一个”约束(在ER中)转换为SQL?
EN

Stack Overflow用户
提问于 2013-01-26 22:15:15
回答 1查看 2K关注 0票数 2

对于我的数据库类,我们必须创建一个ER并将其转换为SQL。我们的ER是一个图书馆数据库。如何将“至少一个”约束转换为SQL?我在谷歌或课堂笔记上找不到它(我没有买课本。)它用粗线来表示:

我们试图说,图书馆的每一部门(科学、人文、电影)必须至少有一名员工监督。我现在拥有的是:

员工(pid,sin,工资,地址)

创建表雇员

(pid CHAR(9) NULL,

新查(9),

双倍工资,

地址: VARCHAR(200)

主键(pid),

外键(pid)

推荐人)

区段(sid,名称,位置)

创建表节

(sid CHAR (11) NULL,

姓名CHAR (20),

地点CHAR (35),

主键(Sid)

Supervised_by(pid,sid,)

创建表Supervised_by

(pid CHAR(9) NULL,

sid CHAR(9)不为空,

主键(pid,sid),

外键(pid)

推荐人雇员,

外键(sid)

参考资料部分)

EN

回答 1

Stack Overflow用户

发布于 2013-01-29 06:11:40

由于许多现实世界的原因,至少有一个限制是有问题的。答案是,没有简单的方法可以做到这一点。然而,有一些方法可以做到,但它们很少被使用。你遇到的最大问题是时机问题。通常需要在员工之前输入主管记录,因此只能在提交时检查至少一个约束。这使得调试变得更加困难。从本质上说,这种方法不能在语句级别工作。

第二个坏消息是,由于上面提到的问题,没有标准的方法来做这件事,所以通常您正在考虑以不完全声明性和不完全可移植的方式执行一些扩展SQL编程。

例如,在PostgreSQL中,您可以编写一个可推迟的约束触发器,在提交时检查该触发器。在其他数据库中,方法可能有所不同。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14542118

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档