一对多关系失败
Posted
技术标签:
【中文标题】一对多关系失败【英文标题】:One to many relationship failure 【发布时间】:2014-05-27 18:02:05 【问题描述】:我正在尝试在 Access 中创建一对多关系。这是我的挑战:
我在一个专门的表格中有一个资产经理列表(一个),另一个表格中有一个基金列表(多个)。
每个资产经理可能有多个基金与其关联,因此我决定通过创建两个表将两者分开。
我在asset managers
表中有SponsorID
作为我的PK,我在funds
表中有CounterpartyID
作为我的PK。
我在funds
表中添加了一个名为SponsorID
的字段以创建链接表的可能性,然后我打开关系对话框以构成实际链接,其中资产经理表中的字段SponsorID
(一)链接到资金表中的SponsorID
字段,这应该将FK 带入资金表中。
当我运行查询以查看与给定资产管理公司关联的所有资金时,我得到空白结果。我不知道为什么会这样,所以任何帮助都将不胜感激。
【问题讨论】:
您应该提供您正在使用的查询。您所描述的是 1 对 N 关系的标准原则,因此缺陷必须在您的查询中。 可能,但这里可能存在更根本的缺陷。我应该提一下,资金表中的 SponsorID 字段是空的,这意味着我没有填充它。当然,如果我填充它,那么一切正常,但如果我必须手动填充它,那么创建关系的目的是什么?我可以将所有内容存储在一张表中...我希望我可以上传文件,但似乎不允许 仅仅创建一个关系不会填充另一个表。怎么可能?是否由关系决定经理将拥有哪些资金?不。当然,您需要手动填充它。对外部连接(左/右)做一些阅读,以找到一种方法来检索没有相应资金的经理,但除此之外,您需要更好地理解关系数据库的概念。祝你好运。 @parakmaikos ...我的话 ;) 【参考方案1】:Bernardo,请阅读有关数据库创建和管理的内容。网上有很多不错的免费教程。 表格无法神奇地嗅出哪些资金属于哪个经理:您必须告诉他们。你是怎么做到的?确切地说:通过将资金表中的 managerID 设置为应该连接到该资金的经理的 ID。然后关系开始有意义:当您打开经理表时,您还可以看到哪些资金是相关的(因为访问找到它们,因为您提供了连接......)
【讨论】:
是的,我错过了一个关键部件。使用子表单顶部填充信息!谢谢以上是关于一对多关系失败的主要内容,如果未能解决你的问题,请参考以下文章
EF Core / Sqlite 一对多关系在唯一索引约束上失败