場景:有兩個表。 Table1包含用戶,Table2包含愛好 用戶可以有多個愛好(20-40)。用戶數超過10萬。基於性能和數據處理在SQL Server中存儲數據的逗號分隔值與多行方法
方法1.創建一個用戶愛好表,其中列1作爲用戶ID和列2作爲愛好,並將愛好存儲爲逗號分隔值。它減少了行數。例如,它有10萬個用戶,每個用戶至少有20個興趣愛好,行數仍將爲10萬。但它違反了規範化原則。
方法2.第1列作爲用戶ID和第2列作爲愛好,併爲每個愛好存儲新行。在這種情況下,如果有10萬用戶,總行數將爲200萬,但遵循標準化原則。
考慮性能和數據處理的簡便性,哪一種方法更好?
方法2會更好。我認爲你應該看看這個鏈接更詳細http://stackoverflow.com/a/39724908/7967350his – Saveen
***永遠不會***在一個單元格中存儲多個值!期。這違背了**關係設計的基本原則,並且從長遠來看會導致你無盡的悲傷和麻煩。你一定要堅持關係設計的三種常規形式 - 把一個以上的值放入一個單元格中,這已經違反了第一個正常形式** –
@marc_s我同意但我對於音量數據的。 –