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 中的作用?它如何影响我的整体数据库?对于这种情况,这种关系是否理想?
Access 中的关系图提供 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。
你结束了这个:
并且如前所述,如果没有这种关系,数据库将并且可以很好地运行,但以上内容仍然很有价值,因为它确实可以防止删除正在使用的机场,并且查询构建器将使用连接默认值。我确实将上面设置为左连接,但公平地说,我也许应该使用内部连接,因此你得到了这个:(注意缺少箭头)
我正在执行 ERD 和 Access 数据库的任务,我需要为一家拥有机队且必须能够安排航班的公司开发 ERD。我已经准备好关系图,为从机场起飞的航班和飞往机场的航班建立一对多的关系(图 1)
ERD关系图
但是,我对如何在 Microsoft Access 中“翻译”此图感到有点困惑。我希望能够将两个实体(机场实体和 airportflightschedules 实体)连接在一起,但我认为我做错了。在 Access 关系图(图 2)中,我将它们连接起来,但我很确定它是不正确的,我什至不太确定我是否理解在 Microsoft Access 中像这样连接它们意味着什么。
访问关系图
谁能告诉我像这样的列表在 Microsoft Access 中的作用?它如何影响我的整体数据库?对于这种情况,这种关系是否理想?
Access 中的关系图提供 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。
你结束了这个:
并且如前所述,如果没有这种关系,数据库将并且可以很好地运行,但以上内容仍然很有价值,因为它确实可以防止删除正在使用的机场,并且查询构建器将使用连接默认值。我确实将上面设置为左连接,但公平地说,我也许应该使用内部连接,因此你得到了这个:(注意缺少箭头)