假設你有一個博客帖子,用戶可以subscrive來評論 是爲更快地通過專門的管理像訂閱表中搜索: ID,郵政,用戶MySQL的搜索和索引性能
或者是更快在users表中有一個字段,其子字段爲: 訂閱= | 2 | 4 | 18 | 21 | 33 |
或者在發佈表中有一個字段與提供該帖子的用戶相比更快: Users_subscrive = | 1 | 2 | 4 | 6 | 9 |
假設你有一個博客帖子,用戶可以subscrive來評論 是爲更快地通過專門的管理像訂閱表中搜索: ID,郵政,用戶MySQL的搜索和索引性能
或者是更快在users表中有一個字段,其子字段爲: 訂閱= | 2 | 4 | 18 | 21 | 33 |
或者在發佈表中有一個字段與提供該帖子的用戶相比更快: Users_subscrive = | 1 | 2 | 4 | 6 | 9 |
最好是有一個單獨的表Subscriptions
,與ID
,Post
,User
。
(假設ID
該表的自動增量PK,發佈FK到表Posts
,User
一個FK到表Users
)
無論從邏輯上看(訂閱是它自己的實體,從而它自己的表)就數據庫性能而言,一個單獨的表是要走的路。
這是一個叫做normalization過程中,它可以讓你做連接,並進行復雜的查詢,如「給我訂閱了這個帖子最後5個用戶」或「得到所有帖子此用戶自從他上次訪問以來已發生了變化「。
它也不限制您的最大訂閱限額(其中用戶表中的固定字段總是有一個長度)。
它會讓你以後到輕鬆擴展你的模型。例如,不同類型的訂閱:通過RSS,通過郵件,最喜歡的帖子得到通知...
最後但並非最不重要的,因爲你使用MySQL,這是一個關係數據庫,這種工作方式(關係,get它?)在MySQL中快得多。它允許索引(快速搜索),外鍵(用戶無法訂閱不存在的帖子,如果帖子被刪除,所有訂閱自動刪除)等等。
如果索引正確,搜索實際表格字段會更快。
事實上,即使它們沒有編入索引,它也應該更快!
第二個建議是具有多個值的字段嗎? – Mike 2011-02-17 16:19:33
@Mike這就是它看起來像 – 2011-02-17 16:21:19