VB.Net & Access - 设置两个外键,引用同一个表/字段

Posted

技术标签:

【中文标题】VB.Net & Access - 设置两个外键,引用同一个表/字段【英文标题】:VB.Net & Access - Set two foreign keys, that refer to the same table/field 【发布时间】:2011-02-22 16:39:58 【问题描述】:

我有一个 Access 数据库,我想在其中存储公司中的联系人: 在这个数据库中,我有一个名为“users”的表,我在其中保存用户 它将有权访问数据库。在名为“联系人”的主表中, 我的两个字段“insert_user”和“contact_user”指的是用户 谁输入了联系信息以及实际联系的用户。 我的想法是,我必须将两个字段都设置为外键 到同一个表/字段,即“用户”/“用户名”。

所以: 我在两个不同的字段中设置了两个外键约束(“insert_user”、“contact_user”),指的是同一个表/字段(“users”/“username” ) 在一个 访问数据库,使用 VB.Net OleDB(参见下面的 SQL 语句)

ALTER TABLE contacts ADD CONSTRAINT insert_user_foreignkey FOREIGN KEY (insert_user) REFERENCES users (username)
ALTER TABLE contacts ADD CONSTRAINT contact_user_foreignkey FOREIGN KEY (contact_user) REFERENCES users (username)

我用 MS-Access 打开数据库。 我看到所有的表都很好(应该是这样)。

但是,当我在 Access 中单击关系时,我的所有表以及名为 users_1 的表都连接到“contacts”/“contact_user”(表 users 仅连接到“contacts”/“insert_user”)

很奇怪,在Access的Table View中看不到这个表,而只在Relationships View中看到。

问题

我的想法是否正确(设置 2 个外键,指向同一个表/字段)? 这个表“users_1”是什么我的数据库会正常工作还是我做错了什么?

【问题讨论】:

【参考方案1】:

这是在多次使用表时 Access 设置关系的方式。如果您添加了另一个关系,它将用于 users_2 等等。这只是一个别名,不是新表。

【讨论】:

以上是关于VB.Net & Access - 设置两个外键,引用同一个表/字段的主要内容,如果未能解决你的问题,请参考以下文章

如何使用VB.NET在Access数据库中插入多条记录

VB.Net 使用创建表查询将 MS Access 表中的 AllowZeroLength 属性设置为否

在 VB.NET 中使用 OleDb.NET 调用 Access 2010 存储选择查询的异常

标准表达式中的数据类型不匹配(vb.net,访问)

vb.net 连接access数据库

如何将 VB.net 程序连接到 access 数据库并在 2 台不同的 PC 上运行它。