【发布时间】:2014-06-19 14:15:54
【问题描述】:
我正在尝试创建一个工作数据库。我有两种不同类型的用户:内部用户和外部用户。每种类型都有不同的属性,所以我只为它们创建了两个单独的表。在我的内部表中,我有以下字段:
f_name VARCHAR(32),
l_name VARCHAR(32),
empl_status_id INT,
admin_grp_id INT,
reliab_status_id INT,
supv_id INT
我的外部表有以下内容:
f_name VARCHAR(32),
l_name VARCHAR(32),
email VARCHAR(32),
phone VARCHAR(20),
org_id INT,
supv_id INT
我意识到我可能会创建一个单独的表,其中包含用户的名称和指向内部或外部的外键,但除此之外,我在引用 supv_id 的内部表中添加了外键约束给另一个内部用户。我称它为fk_supv_id。当我尝试对我的外部用户表做同样的事情时,我得到了ERROR 1005 (HY000)。
起初我不知道问题出在哪里,但是当我尝试使用不同的名称时,它起作用了(即,我没有像内部一样将其称为 fk_supv_id,而是将其称为 fk_xtsupv_id)。
所以我的问题是,正确的方法是什么?这是两个不同表中的相同外键。在这两种情况下,它都指的是内部用户。有没有办法在没有两个不同名称的情况下做到这一点?或者我应该选择名称表并将supv_id 约束与f_name、l_name 和user_type 一起添加到该表?
建议和建议表示赞赏,
谢谢! :)
【问题讨论】:
标签: mysql database foreign-keys foreign-key-relationship