2010-02-15 71 views
0

我有一個表與USERS和另一個表與RSS FEED URLS。兩者都是InnoDB類型。Mysql交叉表引用 - 這是正確的方法嗎?

每個用戶可能訂閱了任意數量的訂閱源。

我試圖找出最好的方式來記錄哪些訂閱源的用戶訂閱。

一種方法是在用戶表中有一個feed_ids varchar列並將它們分開。有更好的方法還是這樣好?

USERS TABLE 
+---+----------+ 
|id | feed_ids | 
+---+----------+ 
|1 | 1,2,3 | 
+---+----------+ 
|2 | 2,3  | 
+---+----------+ 
|3 | 1,2  | 
+---+----------+ 

回答

3

最好在表格中爲每個關係創建一個新條目。 這樣:

USERS-FEEDS TABLE 
+---+----------+---------+ 
|id | user_id |feed_id | 
+---+----------+---------+ 
|1 | 1  |1  | 
+---+----------+---------+ 
|2 | 1  |2  | 
+---+----------+---------+ 
|3 | 1  |3  | 
+---+----------+---------+ 
|4 | 2  |2  | 
+---+----------+---------+ 
|5 | 2  |3  | 
+---+----------+---------+ 
|6 | 3  |1  | 
+---+----------+---------+ 
|7 | 3  |2  | 
+---+----------+---------+ 

您還可以定義這個表,然後將用戶反饋表之間的關係,以確保integrety(即用戶列可以只包含其中的ID在用戶表中的值,並會如果您更新或刪除用戶行時允許更新,刪除或設置爲空)。

+0

噢,你只是提醒我,但我以前使用過這種方法。那就是當你從編碼中長時間休息時會發生什麼。醇'使用它或失去它的東西:P – Chad

+0

忘了說謝謝! -_- – Chad

+0

沒問題,祝你好運!如果您遇到更多問題,我們會收到您的回信! –