2012-02-29 9 views
2

私は人が何かをアップロードするシステムを持っています。その後、1つのリンクがアップロードされたファイルを特定し、他のユーザーのために表示します。各ファイルは独自のページを持ち、コメントボックスを持っています。今、私はPHPスクリプトとSQLを作成する方法の一般的な考え方を持っています。どのようなbeterだろうか?各ファイルのすべてのコメントを1行に保存し、新しいコメントごとに区切り文字を追加しますか?または、コメント入力ごとに新しい行を作成しますが、ファイルへの参照は同じですか?私は、各コメントがSQLで独自の行を持っていても、1日に何千ものエントリに成長することができ、それが効率的であるかどうかわからないのが好きです。PhP SQLのコメントシステム

どちらからアプローチすれば最も効率的ですか?

答えて

1

コメントごとに新しい行を追加する方が理にかなっています。あなたは、FileIDであり、その結果を簡単にフィルタリングするコメントテーブルの列を持つことができます。あなたはそれについてコメントする人がいると行が追加されますが、それは単一の行を持つよりはるかに効率的です。特に、1行に何千ものコメントを入れるのに十分なスペースがない可能性があることを考慮してください!

コメントが多すぎる場合は、MongoDBやCassandraのようなNoSqlソリューションを検討する必要があります。これらのシステムは、特に大量のインサートを取り扱うために作られています(新しいコメント)。

1

(各)コメントの長さが制限されている場合は、VARCHARタイプのセパレートの行に移動します。各ファイルに関するすべてのコメントに対して1行を選択すると、長さのコメントを見積もることができず、TEXTという型を宣言する必要があります。つまり、データが別のファイルに格納され、取得時間に影響します。否定的。さらに、高度なクエリとデータマイニングは別々の行で簡単になります。

また、別々の行は、高次正規化のいくつかの要件と一致します。

0

コメントにはmaxlengthが設定され、データベースにはVARCHARタイプの行があることを確認してください。 デリメータを使用して1つのフィールドにデータを保存することは推奨されません。後の段階でコメントに関する情報を保存する場合は本当に面倒です(日付/ /によって投稿された日付)。

uploadIdを参照して別のテーブルに別々のエントリとして保存します。

関連する問題