我對兩個表之間的關係有疑問。mysql查詢正常關係表vs連鎖內部關係表
比方說,我們有一個表用戶和鏈接。
users
+++++++++
id name
1 name1
2 name2
3 name3
+++++++++
links
+++++++++
id link
1 link1
2 link1
3 link1
+++++++++
現在正常途徑這兩個鏈路與name_links表。 例如:
name_links
++++++++++++
uid lid
1 1
1 3
2 3
2 1
2 2
3 2
++++++++++++
現在我想知道,如果它是一個好主意,做一個表像這樣
name_links
++++++++++++
uid lid
1 1,3
2 1,2,3
3 2
++++++++++++
優點和缺點我能想到的是:
PROS1:
您將始終在索引上搜索更快的查詢 示例select where uid = 1然後選擇鏈接1,3。兩者都是索引,所以它會是一個快速加載。
如果您有1000個用戶,並且他們每個人都有20個鏈接,這意味着您必須通過低谷20.000記錄才能獲得所有鏈接(我認爲,不確定這一點)。使用這種方法,你只需要一個索引,你就完成了。
cons1:
你將不得不更頻繁地更新name_links表,讀取,編輯和寫 例如用戶2刪除鏈接2的方法是:
+獲得的用戶串1
+從字符串中刪除數
+插入新的字符串這裏一切都在索引完成,所以我認爲這將是快。
cons2:
另一個con是,當你刪除鏈接2,你有走線槽的所有字符串,但可以說這是不是太大的問題,因爲這不會經常發生。
這就是我到目前爲止所能得到的結果,而且我處於我的項目中,我必須決定要去哪個項目。
我很想就選擇哪種方法提供一些建議。我有我的優點和缺點嗎?有沒有我沒有考慮的事情。任何關於這個主題的幫助將不勝感激。
謝謝你們!