• 締切済み

アンケートプログラムの集計にはMYSQLは必要ですか?

アンケートプログラムをPHPで作っています。 被験者の方にラジオボタンをチェックしてもらい、 フォームのデータを送信してもらい、サーバ上のCSVファイルに記録する というプログラムです。 CSVファイルの1行には、被験者のID、被験者のIPアドレス、質問1の答え、質問2の答え、質問3の答え・・・とデータが入ります。 基本的な設計はこんな感じなのでして、CSVファイルでも問題ないようにも思うのですが、MYSQLを使った方が良いでしょうか? というか、このようなプログラムでMYSQLを使うことのメリットはありますでしょうか? よろしくお願いいたします。

みんなの回答

  • inu2
  • ベストアンサー率33% (1229/3720)
回答No.2

簡単な内容で、同時アクセス数が極端に少なく、合計回答数も少ない場合(数十人)であれば、CSVってのも無くはないですが、回答を書き込むたびにファイルオープンして書き込んで閉じて・・・の繰り返しです。 複数の人が同時にアクセスした場合、ファイルの排他処理がうまくいってないと中身がグチャグチャになるとか、ファイルそのものがぶっ壊れます。 回答数が多くなればファイルそのものの容量が多くなりますので、ファイル操作のロジックで非常に時間がかかるようになります。 既に回答し終わっているデータも含めてファイル丸ごと読み書きするわけですから重くなって当然。 DBであれば、1レコード(1行)単位でデータを書き換えたりデータを挿入したりできますので、回答数が何百何万になっても体感的な速度は全く同じ。 また、回収したアンケートを集計するのにもCSVだと何かしらツールを使って(ExcelとかSPSSとか)集計しないといけないが、DBを使えばある程度の簡単な集計であればリアルタイムでも集計できるようなシステムを作ることができる。 処理速度が低下するとか、リアルタイムに集計する必要が無いとかいう場合もで、ファイルで保存させた場合ファイルが破損するリスクはあります。 せっかく回答してもらったにもかかわらず、ファイルが壊れてしまっては元も子もない。 ハードウェア的な故障だったらファイルだってDBだってデータは損失しますけどね。 そういった観点からDBを使うのは非常に意義があります。 MySQLがベストかどうかは、また違う話です。 べつにPostgreSQLでもいいしOracleでもいいし。 とにかくなにかしらのDBを使うことで開発する側からも使う側からも両方ともメリットがありますよ。

  • mpx
  • ベストアンサー率71% (149/209)
回答No.1

データ量(アンケート結果件数)や後処理として何をするかによって 嬉しさ(メリット)の程度は変わりますが、 私がMySQLを使用する主な理由(メリットと考えている点)は以下です。 1.複数のクライアントからの同時アクセス時の排他処理が容易 2.収集データの統計処理などの後処理が容易 3.データが多くなってもパフォーマンスがあまり落ちない。

関連するQ&A