从mySQL中的两个表向表中添加外键

时间:2012-01-08 02:19:10

标签: mysql foreign-keys polymorphism

我有两张叫做律师和律师的桌子。 client.And他们是我的网站的用户。所以我有另一个名为users的表来存储他们的用户名,密码。但我必须添加一个引用clientID(从客户端表),lawyerId(从律师表)到用户的外键表。 我怎么能这样做?

2 个答案:

答案 0 :(得分:3)

这听起来倒退了;作为律师和客户端是用户,他们的ID应该引用users表中的ID,而不是相反(不是每个用户都是律师和客户;事实上,有些人可能都不是。)或者我是否误读了你写的内容? / p>

答案 1 :(得分:1)

单个主键列不能有多个外键引用。下面是一个简单的示例,说明如何重新设计架构以满足您的需求。

mysql> CREATE TABLE Users(
    ->    userID VARCHAR(20) NOT NULL PRIMARY KEY,
    ->    password VARCHAR(20) NOT NULL
    -> )
    -> ENGINE=INNODB;

mysql> CREATE TABLE Client(
    ->    userID VARCHAR(20) NOT NULL PRIMARY KEY,
    ->    FOREIGN KEY (userID) REFERENCES Users (userID)
    -> )
    -> ENGINE=INNODB;

mysql> CREATE TABLE Lawyer(
    ->    userID VARCHAR(20) NOT NULL PRIMARY KEY,
    ->    FOREIGN KEY (userID) REFERENCES Users (userID)
    -> )
    -> ENGINE=INNODB;