2011-10-21 49 views
0

我有一張表,它將用戶信息存儲在MySQL數據庫的表中。我需要一種方法來存儲這些用戶所關聯的類。在數據庫中存儲與動態類數關聯的用戶

在學校的班級。

與用戶關聯的類需要是動態的,並且對於每個用戶可能不同。

我正在考慮使用與我的用戶配置文件表中的類關聯的特定數量的列。然後,只要將classId插入到行中(如果它們與該類關聯)即可。然後繼續填充它。

這看起來很髒,很糟糕。我可以通過哪些其他選項查詢數據庫以瞭解用戶與哪些類關聯?

回答

2

設置兩個額外的表格:一個用於類(id,name,...)和一個關聯表,用於將用戶與其類相關聯。關聯表將有兩列:用戶ID和類ID。然後獲取用戶的類別:

select class_id 
from user_classes 
where user_id = X 

其中X是用戶的ID。同樣,要獲得用戶的類:

select user_id 
from user_classes 
where class_id = X 

你可能想每一列單獨設置成(USER_ID,類標識碼)和指數PK的關聯表。

如果你想對類不僅僅是ID的詳細信息,做一個連接:

select u.name, ... 
from users u join user_classes uc on u.id = uc.user_id 
where uc.user_id = X 
+0

我很享受這個答案。 +1。我會試試看看它是如何工作的。 – prolink007

+2

@ prolink007:這是在SQL中實現一組簡單屬性的一種非常標準的方法,在「關聯表」上做一些google。 –

+0

這就是我目前正在做的事情。 =) – prolink007