【发布时间】:2019-05-19 10:13:51
【问题描述】:
我遇到了一个问题
假设您是一家酒店的经理,该酒店的数据库中有一个数据库
CREATE TABLE Hotel
(roomnr SMALLINT NOT NULL,
arrival DATE NOT NULL,
departure DATE NOT NULL,
guest CHAR (30),
PRIMARY KEY (roomnr, arrival)
CHECK (departure >= arrival));
具有以下定义的表:
所以你不能在你到达之前离开这家酒店。
更改此定义,以便您不能在表格中输入到达日期与现有出发日期冲突的预订。 算作碰撞
两个一侧重叠,例如3.1.-6.1。已经预订和 1.1.- 5.1.或 4.1.-10.1。比预定
以及双边重叠,例如2.1.-6.1。已经预订和 1.1.- 10.1.或 3.1.-5.1。而不是预订。
【问题讨论】:
-
如果您没有得到准确的答案,则可能无法通过检查约束来执行此操作。在这种情况下,请考虑使用触发器。
标签: sql oracle constraints overlap overlap2d