2011-12-07 32 views
0

如果user_A想要設置自己的黑名單,我該如何寫? 現在我有一個關於這個表:如何編寫關於設置黑名單的關係數據庫表?

Table: user_data 
========================== 
user_id | u_name | ...| 
========================== 
000001 | user_A | ...| 
========================== 
000002 | user_B | ...| 
========================== 
000003 | user_C | ...| 
========================== 

回答

0

您可以創建一個黑名單表的user_id爲外鍵USER_DATA。 例如:

Table : blacklist 
blacklist_id: primary key 
user_id: foreign key 
blocked_user_id: the user is blocked by this user (foreign key) 

| blacklist_ID | user_id | blocked_user_ID 
+--------------+---------+----------------+ 
| 01   | 00001 | 00002  | 
| 02   | 00001 | 00003  | 
| 03   | 00001 | 00004  | 
| 04   | 00002 | 00001  | 
| 05   | 00002 | 00003  | 
| 06   | 00002 | 00004  | 

Select blocked_user_ID from blacklist where user_id='00001'會返回一個列表:

00002 
00003 
00004 
+0

對不起,我是這些大一新生,我有一個問題,如果用戶_B和user_C還需要設置黑名單,用戶_A ,user_B,user_C他們都在列表10用戶有自己的黑名單,那麼我可以用你的方法嗎?感謝您的回答! – Henry

+0

是的,backlist表爲所有用戶保留備份列表,並通過外鍵密鑰user_ID進行區分。此表中可能存在重複的user_id。無論何時您需要訪問certian用戶的黑名單,都可以使用user_ID查詢該表:「從blacjlist b中選擇*,其中b.user_id = 12345」。 – chance

+0

我明白了,非常感謝。我還有更多的問題,像這樣在一個表中存在兩個屬性:table:blacklist [user_id | blacklist_event | user_id]我很感謝您的幫助! – Henry