VB.Net&访问 - 设置两个引用相同表/字段的外键

时间:2011-02-22 16:39:59

标签: vb.net ms-access foreign-keys

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

所以: 我在两个不同的字段中设置了两个外键约束(“insert_user”,“contact_user”),引用相同的表/字段(“users”/“username” ) in 使用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”(表用户只能连接到“contacts”/“insert_user”)

很奇怪,在Access的Table视图中,我没有看到这个表,只在关系视图中看到。

问题

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

1 个答案:

答案 0 :(得分:1)

这是Access多次使用表时设置关系的方式。如果您添加了另一个关系,那么它将适用于users_2,依此类推。这只是一个别名,而不是新表。