2013-12-16 47 views
0

我正在使用PHP和MySQL。如何設計這個數據庫部分?

我有一個用戶表和一個組表。 我的問題是,我怎樣才能實現一個組中的系統,以便我可以訪問屬於該組的所有用戶標識。

例如:我在用戶表中有John,Mary和Alex。 John是id 1,Mary是2,Alex是3.

現在我該如何將這些用戶添加到組用戶?我不能只添加「user_1」,「user_2」,「user_3」等字段。如果該組有1000名成員,該怎麼辦?在user表

tbl_users 
id 
group_id 
name 

tbl_groups 
id 
name 

保存組ID:

+0

數據庫*設計師*你說? – Peon

+0

@DainisAbols我是一個初學者。我不知道如何做到這一點。通常我會使用一個數組,但是...因爲MySQL不接受數組,我不知道如何設計這個 –

+0

http://stackoverflow.com/a/19871295/2545927 – kkuilla

回答

0

你可以有一個組表和用戶表。添加GROUPID爲外鍵的用戶表 像:

tbl_group : id: int(11) Auto Increment - P.K 
      : group_name: varchar(500) 

tbl_users : id: int(11) Auto Increment - P.K 
      : user_name: varchar(20) 
      : group_id: int(11) - Foreign Key - // Foreign Key to groups Table.  

如果你想許多用戶希望加入許多團體則

tbl_group : id: int(11) Auto Increment - P.K 
      : group_name: varchar(500) 

tbl_users : id: int(11) Auto Increment - P.K 
      : user_name: varchar(20) 

tbl_user_group : id: int(11) Auto Increment - P.K 
       : group_id: int(11) - Foreign Key - // Foreign Key to groups Table. 
       : user_id: int(11) - Foreign Key - // Foreign Key to usersTable.  
+0

謝謝。您的新編輯完全符合我的問題。這是我正在尋找的。 –

+1

請將您的問題標註爲最有幫助的答案(投票按鈕下方的綠色標記)。 – kkuilla

+0

Upvoting對我來說還不可能,但是「綠色勾號」已經被授予。再次感謝。 –

1

您可以添加兩個數據庫表。

+0

是的,但我想要一個用戶能夠加入更多的組,所以它不僅是group_id ... –

+0

@MerdescuR。,我添加了另一個答案,請檢查它! – Pupil

2

你需要的是包含至少一個USER_ID和GROUP_ID

用戶和組之間的關係爲m另一個表:N - 一個用戶可以是多個組的一部分,並且一組可以包含多個用戶。

+0

謝謝。我認爲這是正確的路要走。 –

0

回答支持多個組,使用戶:

tbl_users 
id 
name 

AND

tbl_groups 
id 
name 

tbl_user_groups 
id 
user_id 
group_id 

這樣,我們可以有一個N:N關係(很多用戶許多團體)。