2010-10-05 66 views
0

如何以最佳方式將表project_user與表project_terms連接起來?Mysql連接兩個表(FK) - 數據庫設計

  • 一工程具有不同的categorys像1,2,3,4-
  • 的的categorys存儲在categorys_table
  • 但是一個用戶也許被用於的categorys僅指派1,2和3,4不
  • 我應該將project_table與categorys_table連接嗎?

我該如何解決在我的數據庫設計?

[project_user] 
id name 
1 Tom 

// But User Tom only assigned for the Project_id 1 
// and the cat_id 2 in the project_terms table 

[project_terms] 
project_id (fk) | cat_id (fk) 
1    | 2 
1    | 3 


[categorys_table] 
cat_id | catname 
2  | Lemon 
3  | Apple 



[project_table] 

project_id | name 
1   | FruitsProject 

回答

1

alt text

+0

偉大的模式,是否可以插入屬於ProjectID 1的CategoryID 1,2,3,4? – ali 2010-10-05 12:00:13

+0

@ali - 是的。可以爲用戶分配項目類別組合的任何子集。 – 2010-10-05 12:29:20

+0

謝謝,我試過..完美! :-) – ali 2010-10-05 12:51:43

1

不知道如果我理解正確的你:一個可能的辦法是向所有用戶與項目

[project_project_user] 
project_id | user_id 
    1    1 

有了這個關聯,你必須分配到項目的用戶。

爲了能夠檢查條款,您可以引入一個匹配用戶的表。

[project_terms_user] 
user_id | term_id 
    1    2 

你也可以去當FAS的離開了[project_project_user]表,因爲連接可以通過[project_terms_user]建立。第一個表格可用時,某些queires可能更有效,但結果應該是相同的。

+0

謝謝,好主意! – ali 2010-10-05 11:47:45