访问,多个一对一连接问题

Posted

技术标签:

【中文标题】访问,多个一对一连接问题【英文标题】:Acces, multiple one to one connections question 【发布时间】:2021-12-04 16:19:32 【问题描述】:

我在访问时遇到问题,我正在尝试创建机场数据库,但无法真正实现一对一 - 一对一 - 一对一连接 beetwen 机票、乘客和行李。这个想法是,一个乘客可以拥有一张票和一个行李,当我像图片上那样做时,我不能从票上获取行李,也不能从乘客那里只从行李本身获取。

My diagram

【问题讨论】:

一种简单的方法是将所有内容放在一张表中(1-1可以看作是一张表的扩展),或者在其他表中只使用一个Key作为PK和FK 【参考方案1】:

主要是图表应该是这样的:

简单的数据和键:

示例查询(所有带有相关链接数据的票证):

SELECT Tickets.Ticket, 
       Tickets.Person, 
       Flights.Flight, 
       Luggages.Luggage
FROM Flights 
INNER JOIN (
   (Persons INNER JOIN Tickets ON Persons.ID = Tickets.Person)
LEFT JOIN Luggages ON Tickets.ID = Luggages.ID)
    ON Flights.ID = Tickets.Flight;

第二个视图是目的,所以由你来做调整。

注意: 第三个人没有行李。 第 1 个人和第 2 个人使用相同的航班。

使用了 MS Access,但设计未绑定到特定的 rdbms(仅针对特定实现的方言调整)

另外,Persons-Tickets 的关系应该是 1-n 有一个错误。(类似 Flight-Tickets)。

还可以绑定额外的约束。 例如:一个人可以只在一个航班上是一个特定的时间。

【讨论】:

哦,我明白了,非常感谢,你的回答真的很有帮助,现在我知道它应该如何工作了

以上是关于访问,多个一对一连接问题的主要内容,如果未能解决你的问题,请参考以下文章

MyBatis的对象关系映射---一对多等值连接策略★★★★★

蓝牙并行连接

访问为空的左连接成员时的教义痛苦

MyBatis的对象关系映射---一对多N+1策略★★★★★

优化配置单元中的多个连接

创建具有多个一对多关系的 DAO 查询?