2012-01-08 23 views
0

私は弁護士&という2つのテーブルを持っています。私のサイトのユーザーです。 (clientテーブルから)clientID、lawyerId(弁護士テーブルから)をUserテーブルに参照する外部キーを追加する必要があります。 どうすればいいですか?テーブルに外部キーを追加する

+0

の可能重複[2つの可能なテーブルのいずれかにMySQLの外部キーを行うことは可能?](http://stackoverflow.com/questions/441001/possible-to-do-a-mysql-foreign-キーとテーブルの2つの可能なテーブル) –

答えて

3

これは後方に表示されます。弁護士&のクライアントはユーザーであり、そのIDはユーザーテーブルのIDを参照する必要があります(すべてのユーザーが弁護士およびクライアントであるわけではなく、実際にはどちらもおそらくどちらでもない可能性があります)。書きました?

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; 
+1

パスワードを3か所に保存する理由は何ですか? –

+0

解決しました。ありがとうございます。 –

関連する問題