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 使用创建表查询将 MS Access 表中的 AllowZeroLength 属性设置为否