2012-05-23 36 views
1

爲了說明這個問題,我應該說我對數據庫效率知之甚少,這些數據庫效率很快就會變得非常明顯。mysql - 單字段數組或多行

這是一個相當簡單的問題:

我想存儲的MySQL數據庫內出席活動。 我想到了兩種可能的方法(有更多的,我敢肯定):

  1. events表創建一個額外的attendance行,包含逗號分隔的用戶ID列表
  2. 創建attendance表,包含兩列,event_iduser_id

我的直覺說,方法2將是最有效的 - 雖然多行必須返回,並穿過,這可能比搜索特定成本更低內連串字符串...

任何人都可以證實這一點?

+0

P.S.任何其他選項也歡迎! –

+1

絕對是第二種方法。 – Dima

回答

1

第二個選項是更好的結果。用逗號分隔的字符串搜索很耗時。

但是在第二種選擇中,請確保event_iduser_idFOREIGN KEYS

這將INDEX的列,你會有更好的搜索結果。

+0

感謝您的提示! –

3

創建一個新表!

否則你不採取的MySQL關係方面的優勢,並在每次運行查詢將要解析的CSV條目(horrbily低效)