Microsoft Access 在相关 Table 中将主键作为外键编辑两次

Microsoft Access Edit Relationships Primary Key as Foreign Key Twice in Related Table

我正在执行 ERD 和 Access 数据库的任务,我需要为一家拥有机队且必须能够安排航班的公司开发 ERD。我已经准备好关系图,为从机场起飞的航班和飞往机场的航班建立一对多的关系(图 1)

ERD关系图

但是,我对如何在 Microsoft Access 中“翻译”此图感到有点困惑。我希望能够将两个实体(机场实体和 airportflightschedules 实体)连接在一起,但我认为我做错了。在 Access 关系图(图 2)中,我将它们连接起来,但我很确定它是不正确的,我什至不太确定我是否理解在 Microsoft Access 中像这样连接它们意味着什么。

访问关系图

谁能告诉我像这样的列表在 Microsoft Access 中的作用?它如何影响我的整体数据库?对于这种情况,这种关系是否理想?

A​​ccess 中的关系图提供 table

之间的永久连接

一般来说:列表table本质上是静态的,即国家、机场等列表

一笔交易table正在积极adding/changing记录....

我们不希望人们在他们的州或他们的机场或任何原因下随意打字 - 我们希望他们从列表 table 中 select...

在 Access 联接图中,您复制了列表 table,因此存在 States_1 States_2 并加入每个 - - 您不会对同一个列表进行一堆联接table 重复使用时

许多开发人员不喜欢在列表的 table 级别加入 - 避免使用 'look up' 字段类型;而不是在 form/control 级别执行查找 - 因为 select 或控件(组合框)有一个行源 属性,您可以在其中指定列表 table... . 这种做法比较灵活

好吧,实际上,此设置“更多”是查找,然后是强制关系。

我的意思是,您可以添加新机场,甚至删除机场 - 战斗时间表 table 真的不涉及。

但是,通过加强关系,您只会获得额外的好处,即您将无法(无意或有意)删除机场记录(当前正在使用。如果不使用,那么您将可以删除。

但您可以自由删除和添加航班(机场 table 不关心)。 如前所述,您可以自由添加(或删除)机场,航班 table 也不在乎(除非机场当前正在使用中)。

但是,加强关系?在关系设计器中,您输入 table(航班时刻表),然后输入机场 table。设置第一个关系(它应该是左连接)。

现在是第二个关系 (DestAirPort),然后只需右键单击并第二次添加机场 table。

你结束了这个:

并且如前所述,如果没有这种关系,数据库将并且可以很好地运行,但以上内容仍然很有价值,因为它确实可以防止删除正在使用的机场,并且查询构建器将使用连接默认值。我确实将上面设置为左连接,但公平地说,我也许应该使用内部连接,因此你得到了这个:(注意缺少箭头)