2012-02-03 10 views
0

この質問は奇妙に思えるかもしれませんが、私は長い間答えを探していて、何も見つかりませんでした。txtファイルを使用してデータを保存

あなたがブログを持っていて、このブログに他のブログと同様に多くの投稿エントリがあるとします。それぞれの投稿に簡単なユーザーコメントを付けることができます。データ管理が必要なボタンやその他のリソースはありません。質問は次のとおりです:ユーザーのコメントを1つのテキストファイルに保存できますか?各投稿はコメントを保持するテキストファイルに関連付けられます。だから、私はn投稿がある場合私はnテキストファイルを持っているでしょう。

私はこれを完全に行うことができますが、私は他の場所でそれを見たことがないと誰もそれについて話していません。私にとってこれは保存するよりも良いと思われるすべてのコメントからすべての投稿単一のmysqlテーブルには何がありますか?

+0

なぜ簡単にフィールドを追加したり削除したりすることができ、多くの異なる方法で問い合わせることができる整頓されたテーブルを1つしか持たない方がよいでしょうか? – nico

答えて

4

対応する投稿に関連付けられたテキストファイルにコメントを格納していますか?それが良い考えであるかどうか見てください。

  1. 大丈夫新しいコメントを追加すると簡単にファイルに新しいテキストを書き込むことができます。しかし、データのフォーマットはどうですか? CSV?それでは、レンダリングする前に解析する必要があります。

  2. ページング。コメントが多い場合は、ページングナビゲーションを作成することを検討してください。それは簡単に、確実に行うことができます。しかし、ファイルを開き、すべてのレコードを読み取って20番のファイルを抽出する必要があります。

  3. コメントを承認してください。誰かが新しいコメントを投稿しました。保留中のステータスで配置します。管理パネルでは、マークされたコメントを見つけてそれに応じて処理したり、保存したり削除したりする必要があります。あなたはそれがテキストファイルで便利だと思いますか?使用しても同じ場合は、自分自身のコメントを削除することにしました。

  4. 多くのコメントと多くの投稿がある場合、ファイルを読むことはデータベースの場合には遅くなります。

  5. スケーラビリティ。ある日、コメント機能を拡張して、あるコメントが別のコメントに応答できるようにしたいと考えています。あなたはテキストファイルでそれをどうしますか?または、コメントの例nico:「コメント欄に評価フィールドを追加したい場合は6ヶ月のうちに、大きな頭痛を覚えるでしょう。単純なALTERクエリを実行するだけです」。

これはちょうどいいところです。誰かが何かを追加するかもしれない。

+1

保守について忘れないでください。 6ヶ月の時間で、あなたがコメントに評価フィールドを追加したいとき...あなたは大きな頭痛を持つでしょう。あるいは、単純な 'ALTER'クエリを実行してください。 – nico

+0

まあまあです。私はこれを5番目のスケーラビリティとして追加しました。 – dfsq

+0

あなたが正しい!私はあなたの答えで私の心をクリアすることができます。私はまた、これが悪い理由をいくつか考えました。私を助ける時間をとってくれてありがとう。 –

1

これが行われていない理由は十分です。私はおそらくそれらすべてに名前を付けることはできませんが、心に来る最初の事:

  1. 効率
  2. 柔軟性が

データベースは、はるかに効率的で柔軟なプレーンテキストファイルよりもあります。インデックスに登録し、検索し、個々のコメントにキーを割り当て、キーに基づいてコメントを編集および削除することができます。

さらに、ブログがかなり大きければ、テキストファイルが膨大になります。それ自体は問題ではありませんが、すべてを1つのディレクトリに保存すると比例して大きくなり、特定のテキストファイルを検索して開くために必要なアクセス時間が大幅に増加します。

関連する問題