2012-02-29 151 views
2

我有一個系統,人們會上傳一些東西,然後一個鏈接就可以識別上傳的文件並顯示給其他用戶。每個文件都有自己的頁面,他們將有一個評論框。現在我已經知道如何創建PHP腳本和SQL,我只有一個問題。會有什麼結果?將每個文件的所有評論存儲在一行中,併爲每個新評論添加一個分隔符?或者爲每個評論輸入創建一個新行,但對文件具有相同的引用?我寧願如果每個評論在SQL中有自己的行,但它可以很容易地成長爲每天數千條,我不知道這是否有效。PhP SQL評論系統

這兩種方法哪一種效率最高?

回答

1

爲每個評論添加一個新行會更有意義。你可以在註釋表中有一個列,這個列將是FileID並且可以很容易地過濾結果。雖然你會有人對它進行評論,並且會添加行,但它比單行更有效率。特別是考慮到你可能沒有足夠的空間用於單行數千條評論!

如果你真的擔心有太多評論,你應該看看像MongoDB或Cassandra這樣的NoSql解決方案。這些系統專門用於處理大量插頁(即:新評論)。

1

如果(每個)註釋長度是有限的,那麼請分別使用VARCHAR類型的行。如果您爲每個文件的所有評論選擇單行,那麼您無法事先估計長度評論,並且您必須聲明它爲TEXT類型,這意味着數據將存儲在單獨的文件中,這會影響檢索時間負。而且,高級查詢和數據挖掘將更容易,並且分開的行。

另外單獨的行將符合一些高階標準化的要求。

0

確保評論具有設置的最大長度,並從數據庫中獲得與VARCHAR類型的行。 建議不要使用將數據保存在一個字段中,並且如果要在後面的階段(日期/由/ etc發佈)或甚至在查詢信息時保存有關注釋的信息,將會非常麻煩。

將它們另存爲單獨的表格並引用uploadId。