我正在设计一个机场数据库以及它们如何通过路线相互连接。 Idea是openflights的简单版本。
这是我的ERD:
它有四个实体,即:机场,航线,航空公司和飞机。关系如下:机场和航线之间的二元关系(出发地和目的地),航空公司服务该航线,最后航空公司有一架通常在该航线上使用的飞机。
我不确定所涉实体的有效性及其关系。如果有人可以指出我的错误,那就太好了。
答案 0 :(得分:1)
我不会称之为路由表。
路线有路点和轨道,可能会有变化。例如,从KFJK到KORD的路线是COATE Q436 EMMMA WYNDE5
(这些是航点,而WYNDE5是到达奥黑尔)。
您的图表更像是目的地表格。大多数航班是单人航班(“直航”),对于多航班航班,您需要单独跟踪这些航班。
我会跟踪航班(具有唯一号码)而不是您的“路线号”变量。可以通过不同的设备飞行。例如,可以在777或A380中飞行同一航班。
许多航空公司使用相同的航线,但使用不同的航班;每次飞行包括以下内容:
路线飞行是预定义的。看看肯尼迪国际和芝加哥奥黑尔之间的this table航班。
如果您点击ident列(这是航班号),您将看到为该航班飞行的航线。
我会做出以下更改:
答案 1 :(得分:0)
我想到了几个问题:
Route
are_No
,Dep_air
和Dest_air
?no_of_stops
:这个数字真的足够吗,还是你需要停止?ends_ad
和starts_from
和交集? (希望我能读到这个吗?)airport
route_No
?Route
<有> airline
M-M
吗?即使他们使用相同的机场,每家航空公司也不会运营自己的航线吗?airline
modelNo
?no_of_planes
:您已经隐含地获取了该信息,通常无需再次存储它。aeroplane
:这些是真正的飞机吗(例如,一家航空公司会有几架空中客车A380飞机?)。如果是这样,定义类型的附加表可能有意义。一般:
Route
vs airline
Dest_air
vs destination_airport
modelNo
vs route_No
修改:由于您决定忽略中间停靠点,因此您的模型可能如下所示: