Microsoft Access 2019,一对一关系(SuperType-> SubType)

丹尼尔·W

我对如何在Microsoft Access 2019中设置一对一关系感到沮丧。我有一个子tblAccounts类型为tblVendorstblClients

现在,我可能对它的工作方式没有一个完整的了解,但是我的“ Access 2019圣经”几乎没有涉及到这个主题,而且我找不到在线的此类例子。

为了简单起见,我的设置是:

tblAccounts
-----------
AccountID    [AutoNumber, PK]
AccountName  [ShortText]
AccountData...

tblClients
---------
AccountID    [Number, PK-FK]
ClientData...

tblVendors
---------
AccountID    [Number, PK-FK]
VendorData...

我相信我已经正确设置了关系,到目前为止,我可以创建一个客户记录,然后分别创建一个客户/供应商记录。它与引用完整性是一对一的,因此将仅允许存在的AccountID,并且仅允许它们一次。但是我必须手动输入该帐户的ID。

当我在tblAccount和子类型之间创建SELECT查询时,我要寻找的是如何AccountID自动魔术地共享记录还是我应该使用将辅助记录添加到“客户/供应商”表中的宏?还是我要解决这个完全错误的问题/我的表需要重新配置。

目前,我仅处于项目的表和查询设计级别。那么想知道这在这个水平上是否无法实现?

谢谢大家!


编辑:

澄清,

我希望加强tblAccounts与它的子类型之间的联系因此,无论何时何地,都通过AccountID与该客户或供应商相关的记录中创建记录tblClienttblVendro在其中创建一个超级记录tblAccount

到目前为止,我必须先在其中创建一条记录tblAccounts,然后在其中创建一条记录,tblClient/Vendor然后手动键入的AccountID tblAccounta

现在,在我的设计中,我并没有试图提取,合并或推断任何额外的数据,我只是想了解一对一在访问中的真正作用,如果我真的应该使用它的话。尽管客户表和供应商表在大多数设置数据中将是相似的,但它们是否应该彼此独立?我的“ Microsoft Access 2019圣经,Michael Alexander和Dick Kulsleika”使用此帐户->客户/供应商关系来描述一对一,但没有提供设置示例。我只是以为这种关系应该存在,如果他们花时间在一本实际的公开书中提及它。

哈里奇

您希望能够在外键完整性约束中的依赖表中存储行,并且这将自动创建父行。这不能工作,因为:

  1. 从属表中的存储不能触发父表中的AutoNumber属性
  2. 对于完整性约束,访问只是不这样做。

您应该查看其他更适合您需求的机制:

  • 数据宏
    借助此宏,您可以创建一个宏,该宏将由从属表上的插入触发。

  • SQL过程
    这样,您可以创建一个过程,该过程将重复执行以下操作:在检查父行是否存在之后,将行插入到依赖表中;如果不存在,则使用默认值创建该过程。您也可以创建用于更新或删除父表的过程。

使用上述方法之一可以使外键完整性约束变得多余。没有它,某些数据库操作可能会变得更快。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章