Database 机场和航线数据库ERD

Database 机场和航线数据库ERD,database,database-design,entity-relationship,Database,Database Design,Entity Relationship,我正在设计一个机场数据库,以及它们如何通过航线相互连接。这个想法更简单 这是我的ERD: 它有四个实体,即:机场、航线、航空公司和飞机。关系如下:机场和航线之间的二元关系(出发和目的地),航空公司为该航线服务,最后航空公司拥有一架通常在该航线上使用的飞机 我不确定所涉实体的有效性及其关系。如果有人能指出我的错误就好了。我想到了几个问题: 路线 什么是是\u No、Dep\u air和Dest\u air 没有站点数量:这个数量真的足够了吗,还是您需要站点数量 为什么结束>和从和交叉点开始?

我正在设计一个机场数据库,以及它们如何通过航线相互连接。这个想法更简单

这是我的ERD:

它有四个实体,即:机场、航线、航空公司和飞机。关系如下:机场和航线之间的二元关系(出发和目的地),航空公司为该航线服务,最后航空公司拥有一架通常在该航线上使用的飞机


我不确定所涉实体的有效性及其关系。如果有人能指出我的错误就好了。

我想到了几个问题:

  • 路线
    • 什么是
      是\u No
      Dep\u air
      Dest\u air
    • 没有站点数量
      :这个数量真的足够了吗,还是您需要站点数量
    • 为什么<代码>结束>和<代码>从<代码>和交叉点开始?(希望我读对了?)
  • 机场
    • 为什么它有一个
      路线号
  • 航线
    航空公司
    • 这真的是
      M-M
      ?即使使用相同的机场,难道不是每家航空公司都有自己的航线吗
  • 航空公司
    • 什么是
      modelNo
    • no\u of_planes
      :您已经隐式获得了该信息,通常无需再次存储
    • 飞机
      :这些是实际的飞机吗(例如,一家航空公司会有几架空客A380?)。如果是这样的话,一个定义类型的附加表可能是有意义的
概述:

  • 确保使用一致的命名:
    • 案例:
      Route
      vs
      airline
    • 避免使用缩写(个人意见):
      Dest\u air
      vs
      destination\u air
    • 下划线的一致使用:
      modelNo
      vs
      route\u No
编辑:由于您决定忽略中间停止,因此您的模型可能是这样的:

  • 航空公司
    • 航空公司识别码(PK)
    • 姓名、别名
  • 航空公司飞机
    • 航空公司飞机识别码(PK)
    • 航空公司识别码(FK)
    • 型号、品牌、容量
  • 机场
    • 机场识别码(PK)
    • 姓名、城市、国家
  • 路线
    • 路线标识(PK)
    • 路线编号、站点数量
    • 离港机场(FK)
    • 目的地机场(FK)
  • 航线
    • 航空公司识别号(FK)(PK)
    • 路线标识(FK)(主键)

    • 我不会把这称为路由表

      路线有路线点和轨道,可能会发生变化。例如,从KFJK到KORD的路线是COATE Q436 EMMMA WYNDE5(这些是航路点,WYNDE5是到达奥黑尔的路线)

      您的关系图更像是一个目的地表。大多数航班都是单航段(“直航”),对于多航段航班,您需要单独跟踪这些航段

      我将跟踪航班(具有唯一编号),而不是您的“路线编号”变量。一次飞行可以使用不同的设备。例如,同一航班可以乘坐777或A380飞机

      许多航空公司的航线相同,但使用不同的航班;每个航班包括以下内容:

    • 唯一编号
    • 机型
    • 起源
    • 目的地(可以是多个或中间)
    • 飞行路线是预定义的。看看肯尼迪国际机场和芝加哥奥黑尔机场之间的航班

      如果单击ident列(这是航班号),您将看到该航班的飞行路线

      我会作出以下更改:

    • 从飞机工作台上删除“速度”;并将此表重命名为“设备”
    • 将“alias”重命名为“ICAO”,并在其中添加ICAO代码(三个字母)
    • 航空公司没有航线;因此,我会将路线重命名为“目的地”
    • 机场没有航线号码;所以我不确定那是怎么回事
    • 机场有两个主要标识符,国际民航组织标识符代码(4个字母)和国际航空运输协会标识符(3个字母)。我想补充这两个
    • 我会将航线号重命名为“航班号”,然后将实际航班号添加到其中;每个腿都单独输入。这将照顾您的多航段(多站)航班
    • 我会添加一个flight_设备表,以便在每个航班和使用的设备之间建立链接。现在航班和飞机之间没有联系

    • 我看不出飞机和路线之间有什么联系。大约10年前,我为一家航空公司做了一个ER模型,如果我没记错的话,一条航线可以由几个航段组成,每个航段都有一个起点和终点。但是,对于您的用例,您可能不需要对中间站点进行建模。什么应该是飞机和路线之间的连接?我正在寻找一个更简单的数据库版本,其中包含机场和航线的信息或它们之间的链接,以及覆盖该航线的航空公司,因此目前我不考虑中间站点。不过,我非常感谢您的建议,在最初的模式之后,我将继续努力。我非常确定
      路线
      航空公司
      是一种m:N关系。航线由国家或国际航空协会定义(和分配)。多家航空公司可以飞同一条航线。首先,正如你所看到的,我是一个新手,很抱歉没有遵守标准。dep_air应该是dest_air的出发机场和目的地机场。航线与机场的关系应该是什么?route是否应该连接两个不同的机场实例,然后将route链接到airline?寻找一些改进的建议。@a_horse_,没有名字:谢谢你的洞察力@彼得朗善意地澄清了这些:我认为你们在航线中遗漏了作为PK的路线标识,因为你们在航空公司中使用它作为FK_