私は小さなウェブアプリ/ゲームを設計しています。 MySQLテーブルまたはjsonファイルの方が良いでしょうか?どちらも情報を保存します。どちらもPHPで解析できます。長所/短所は何ですか?
これは私が意味するものです:
username | password
-------------------
seefour | abc123
vs.
{
"username":"seefour",
"password":"abc123"
}
編集:うわー、この質問をしてからわずか3年で、この質問をしたときからどれだけ成熟しているかを見るのは驚くべきことです。未来の私から過去の私まで、この2つが機能しないのはこのためです。 (私のような素朴な人がこれを参照できる場合)
以前は、どちらも情報を保存するほとんどの方法であったため、この2つは互換性があると考えていましたが、当時はJSONファイルを保存して使用する方が簡単でした。データベーまた、すべてのデータを1つまたは2つのファイルに格納すると、データが盗まれたり失われたりする危険性が非常に高くなります。基本的に、データはコードの一部であってはなりません。それはあなたのコードが動作する別個のものでなければなりません。
また、数年後のハッシュとソルティングについても学習しますので、パスワードをプレーンテキストで保存しないでください!
正直言って、MySQLはデータベースですが、JSONはそうではありません。そのため、正しい答えはMySQLです。 JSONは単なる言語であり、ほとんどありません。 JSONは、同時接続やあらゆる種類のデータ操作のようなものを処理するようには設計されていません。その独自の機能はrepresent dataではなく、representであるためです。
したがって、データを保存するにはMySQLを使用してください。次に、何らかのプログラミング言語を使用してそのデータベースを読み取り、その情報を実際にJSONに保存するのではなく、JSONとして送信する必要があります。
JSON形式であれ他の形式であれ、ファイルにデータを保存すると、データベースが同じものに使用され始めてから人々が心配することをやめたあらゆる種類の問題が発生します。サイズ制限、ロック、名前を付けます。ユーザーが1人の場合は十分ですが、さらに追加するとすぐに、多くの問題の解決を開始するため、ファイルを処理するためだけにデータベースエンジン全体を作成することになるでしょう。単に実際のデータベースを使用することもできます。
MySQLは多くの理由で好まれますが、少なくともWebサーバープロセスにファイルシステムへの書き込みアクセス権を与えたくない(ロギングを除く)のは悪用される簡単な方法だからです。
また、MySQLチームは、レプリケーション、データへの同時アクセス、ACIDコンプライアンス、データ整合性などに多くのエンジニアリング努力を注いできました。
たとえば、保存しているデータ構造に必要な新しいフィールドを追加するとします。 JSONファイルに保存する場合、各ファイルを開き、フィールドを追加してから保存するプロセスが必要になります。これを、フィールドのデフォルト値でALTER TABLEを使用する難しさと比較してください。 (少し不自然な例ですが、古いデータを処理するためにコードベースに残したいハックはいくつありますか?)
2つは実際には比較できません。
MySQLはデータをデータベースに保存するか、実際はデータベースです。 JSONは、サーバーとクライアントの間でやり取りされる形式でデータを保存します。 Javascript/jqueryはJSONをデータオブジェクトとして使用できますが、ページの存続期間中のみクライアント側に存在します。
したがって、JSONとしてデータを保存する場合(推奨されません)、おそらくデータを保存するためにテキストファイルとして保存する必要があります。
データベースにデータを保存する必要があります。関数を使用してJSON形式に変換し、Webページに渡してjavascriptがユーザーに表示するようにします。