2014-01-19 48 views
0

我想跟蹤用戶擁有什麼歌曲的內容。 用戶表:使用foriegn鍵跟蹤新關係中的所有權

+--------+----+ 
|username|name| 
+--------+----+ 
|sam1 |Sam | 
+--------+----+ 
|bil9 |Bil | 
+--------+----+ 
|tomj |Tom | 
+--------+----+ 

的邏輯是建立一個新的關係來跟蹤誰擁有什麼歌...

+-------------+--------+ 
|user_username|track_id| 
+-------------+--------+ 
|sam1   |1  | 
+-------------+--------+ 
|bil9   |5  | 
+-------------+--------+ 
|bil9   |9  | 
+-------------+--------+ 
|tomj   |2  | 
+-------------+--------+ 

軌道ID是一個外鍵的曲目表:

+--+------+ 
|id|name | 
+--+------+ 
|0 |track1| 
+--+------+ 
|1 |track2| 
+--+------+ 

這是正確的,還是有一個更合乎邏輯的方式來做到這一點?

+0

如果你的意圖是建立一個多對多的關係,那麼是的 - 有一個聯結表是正確的方式來做到這一點。 –

回答

0

你稱之爲「邏輯」更多的是查找表。

需要考慮的事情:

  • 1的用戶可以擁有多個曲目?如果是這樣,請確保track_id不唯一。
  • 你所做的一切都很好,因爲如果你改變一個曲目或用戶名,映射保持不變。

有一兩件事,我建議是有一個用戶ID,以便USER_ID映射到track_id - 它總是好的數字地圖的數字,因爲它通常更快地做查詢,則可以更改文本值高達你喜歡,他們仍然映射。

+0

根據表格的佈置方式,track_id是否獨一無二? bil9擁有9和5.每個這些ID都可以映射到特定的軌道。另外,這個問題意味着id僅僅是跟蹤表的主要關鍵。 – Jenn