我有这样的:检查创建表
create table airport
(idairport varchar(1),
name varchar(1),
city varchar(1),
primary key(idairport));
是否可以检查一个城市没有超过3个机场?
编辑:
的运动是:
转换关系模型的概念架构。我们想知道,每个机场,已经有飞机和可能的目的地。如果模型未标准化,则将其归一化,避免存在空值。
约束:
- 没有任何航班准点起飞机场和降落在同一机场 。
- 一个城市最多有三个机场。
该解决方案必须是一组“CREATE TABLE”句子。尽你所能表达尽可能多的完整性约束。由于关系翻译而只指定所有“NOT NULL”。此外,你不应该忘记定义必要的外键和替代键(UNIQUE + NOT NULL)。
翻译后(如果我没看错):
create table aircraft
(idaircraft varchar(1),
seating varchar(1),
primary key(idaircraft));
create table destination
(idairportorigin varchar(1) references airport(idairport),
idairportdestination varchar(1) references airport(idairport),
idaircraft varchar(1),
check(idairportorigin <> idairportdestination),
primary key(idairportorigin, idairportdestination, idaircraft),
foreign key (idaircraft) references aircraft(idaircraft));
您可以使用插入/更新触发器添加检查插入或更新的数据 – 2013-03-10 15:43:59
'创建表'是可能的? – David 2013-03-10 15:46:10
所有的varchar(1)只是因为这是一个例子,对吧? – 2013-03-10 15:46:59