2014-12-11 78 views
0

所以我應該在MySQL的數據庫表的這種設置是否正確?

創建這兩個表

enter image description here

什麼沒有意義,我是用戶表如何與FriendsXRef工作。 我知道什麼是交叉引用表,但在這種情況下,我沒有看到以下方面的邏輯。 有人問我下面的數據嵌入到用戶表:

海倫X.世界,生於1995年1月5日,女,海倫Y.世界

海倫Y.世界的朋友,生於十一月24,1999年,女,艾麗西亞R的朋友 塞耶斯,海倫X.世界,和馬克普朗克U.海倫Y.世界 和馬克的

艾麗西亞R.塞耶斯,生於1990年7月22日,女,朋友U.普朗克

馬克U.棧道,生於3月15日, 1998年,男,海倫Y.世界的朋友, 艾麗西亞R.塞耶斯和沃爾特·普朗克Z.

沃爾特Z.木板,U.馬克計劃1989年出生5月10日,男,朋友

這是我做過什麼:

insert into users values(1, 'Helen', 'World', 'X', 'F', '1995-01-05'); 
insert into users values(2, 'Helen', 'World', 'Y', 'F', '1999-11-24'); 
insert into users values(3, 'Alicia', 'Sayers', 'R', 'F', '1990-07-20'); 
insert into users values(4, 'Mark', 'Plank', 'U', 'M', '1998-03-15'); 
insert into users values(5, 'Walt', 'Plank', 'Z', 'M', '1989-05-10'); 

正如你看到的,我需要弄清楚如何將數據插入到FriendsXref表,以便它表明可以說在第一部分中,海倫ÿ世界是海倫X世界的朋友。

當我嘗試做添加添加到FriendsXref表是這樣的:

insert into friendsxref values(2, 1); 

insert into friendsxref values(3, 2); 
insert into friendsxref values(1, 2); 
insert into friendsxref values(4, 2); 

insert into friendsxref values(2, 3); 
insert into friendsxref values(4, 3); 

insert into friendsxref values(2,4); 
insert into friendsxref values(3,4); 
insert into friendsxref values(5,4); 

insert into friendsxref values(4,5); 

顯然我得到一個錯誤,因爲FriendsXref表的用戶ID字段設置爲是唯一的。

然後,我的問題是,如何工作的呢?如何將這些朋友添加到FriendsXref表中?

感謝

回答

0

您可以設置爲FriendsXref表一個單獨的行標識符。該表可以具有列id(Primary key),UserID(Foreign key)FriendID。 以這種方式,您將不會收到任何錯誤,因爲您已在id列中擁有不明確的行標識符。

0

簡單:使兩列在同一時間唯一的。當你和朋友做同一個人兩次時,它只會出錯。

ALTER TABLE `FriendsXref` ADD UNIQUE(`UserID`, `FriendID`);