アンケートプログラムをPHPで作っています。
被験者の方にラジオボタンをチェックしてもらい、
フォームのデータを送信してもらい、サーバ上のCSVファイルに記録する
というプログラムです。
CSVファイルの1行には、被験者のID、被験者のIPアドレス、質問1の答え、質問2の答え、質問3の答え・・・とデータが入ります。
基本的な設計はこんな感じなのでして、CSVファイルでも問題ないようにも思うのですが、MYSQLを使った方が良いでしょうか? というか、このようなプログラムでMYSQLを使うことのメリットはありますでしょうか?
よろしくお願いいたします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
簡単な内容で、同時アクセス数が極端に少なく、合計回答数も少ない場合(数十人)であれば、CSVってのも無くはないですが、回答を書き込むたびにファイルオープンして書き込んで閉じて・・・の繰り返しです。
複数の人が同時にアクセスした場合、ファイルの排他処理がうまくいってないと中身がグチャグチャになるとか、ファイルそのものがぶっ壊れます。
回答数が多くなればファイルそのものの容量が多くなりますので、ファイル操作のロジックで非常に時間がかかるようになります。
既に回答し終わっているデータも含めてファイル丸ごと読み書きするわけですから重くなって当然。
DBであれば、1レコード(1行)単位でデータを書き換えたりデータを挿入したりできますので、回答数が何百何万になっても体感的な速度は全く同じ。
また、回収したアンケートを集計するのにもCSVだと何かしらツールを使って(ExcelとかSPSSとか)集計しないといけないが、DBを使えばある程度の簡単な集計であればリアルタイムでも集計できるようなシステムを作ることができる。
処理速度が低下するとか、リアルタイムに集計する必要が無いとかいう場合もで、ファイルで保存させた場合ファイルが破損するリスクはあります。
せっかく回答してもらったにもかかわらず、ファイルが壊れてしまっては元も子もない。
ハードウェア的な故障だったらファイルだってDBだってデータは損失しますけどね。
そういった観点からDBを使うのは非常に意義があります。
MySQLがベストかどうかは、また違う話です。
べつにPostgreSQLでもいいしOracleでもいいし。
とにかくなにかしらのDBを使うことで開発する側からも使う側からも両方ともメリットがありますよ。
No.1
- 回答日時:
データ量(アンケート結果件数)や後処理として何をするかによって
嬉しさ(メリット)の程度は変わりますが、
私がMySQLを使用する主な理由(メリットと考えている点)は以下です。
1.複数のクライアントからの同時アクセス時の排他処理が容易
2.収集データの統計処理などの後処理が容易
3.データが多くなってもパフォーマンスがあまり落ちない。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) 20万行あるデータを動かしたい 2 2023/06/13 15:21
- その他(プログラミング・Web制作) データ解析ソフトRでのファイル入力read.csvがエラーになります 7 2022/03/27 22:11
- XML PHP.laravelについて 1 2023/07/06 15:26
- MySQL mysqlがインストールされているのかどうか 1 2023/06/05 14:19
- Visual Basic(VBA) VBA 毎日取得するデータを順番に反映していく方法 6 2023/08/26 16:22
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
- MySQL mysqlがインストールされているのかわかりません 1 2023/06/05 02:26
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- PHP 掲示板を資料を参考にして開発中ですが、画像がアップされません? 1 2022/11/21 06:44
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
拡張子が「cda」のファイルを聞...
-
【Excel】[Expression.Error] ...
-
特定のエクセルファイルを起動...
-
(Excelマクロ)datファイルをエ...
-
ファイルの途中に文字列を挿入
-
CSVの項目行を削除して一つのフ...
-
社内Excel共有ブックでの保存ト...
-
JSONファイルの置き場所について
-
共有フォルダに誰が何にアクセ...
-
WEBクエリが使えない場合のHPデ...
-
スクリーンセーバーの「テクス...
-
バックアップファイルの作り方(...
-
httpの画像urlが作りたいんです...
-
VBAでCSVファイルが使用中かど...
-
excelを共有ファイルにすると行...
-
Batch: フォルダ内の特定のファ...
-
Excel VBA 処理後データが重た...
-
事務の派遣で働いています。多...
-
amifldrv64.sysについて教えて...
-
OPENGLでOBJファイルのフォーマ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【Excel】[Expression.Error] ...
-
共有フォルダに誰が何にアクセ...
-
特定のエクセルファイルを起動...
-
Batch: フォルダ内の特定のファ...
-
Access VBA を利用して、フォル...
-
tmpファイル なぜできる?削除...
-
VBAでCSVファイルが使用中かど...
-
AccessVBAで作成したExcelファ...
-
月が変わったら自動でシートが...
-
excelを共有ファイルにすると行...
-
【アクセス】「ほかのユーザー...
-
(Excelマクロ)datファイルをエ...
-
ファイルの途中に文字列を挿入
-
相手のPCにVBAからメッセ...
-
mdbファイル フォームを開くと...
-
Excel VBA 処理後データが重た...
-
社内Excel共有ブックでの保存ト...
-
拡張子が「cda」のファイルを聞...
-
事務の派遣で働いています。多...
-
【VBA】異なる行だけを抜き出す...
おすすめ情報