我有这个:
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));