私は非常に新しい php 開発者であり、教育機関向けの最初のシステムを開発しています。これには、スタッフ、管理、学生、学生の成績、および支払いの詳細が含まれています。
データベースで何が最善のアプローチであるかはわかりません。すべてのデータに対して単一のデータベースを使用する必要がありますか、それとも前述の内容に対して複数のデータベースを作成する必要がありますか。
これについてどう思いますか?
私は非常に新しい php 開発者であり、教育機関向けの最初のシステムを開発しています。これには、スタッフ、管理、学生、学生の成績、および支払いの詳細が含まれています。
データベースで何が最善のアプローチであるかはわかりません。すべてのデータに対して単一のデータベースを使用する必要がありますか、それとも前述の内容に対して複数のデータベースを作成する必要がありますか。
これについてどう思いますか?
そもそもデータベースとは何を意味するのか明確ではありません。
要件が学校の宿題に由来すると仮定すると、1 つのデータベース、1 つのスキーマ、および複数のテーブルで十分です。
高い信頼性、冗長性、フェイルオーバーについて考える必要がある場合、それはまったく別の答えであり、複数のデータベース インスタンスを提案する可能性が最も高いでしょう。
高スケールに関心がある場合、それは別の答えであり、クラスター化されたデータベース環境を示唆している可能性があります。
要するに、あなたの要件は何ですか、レコード数、ユーザー数、何時間または何日もデータベースをダウンさせることの重要性はどれくらいですか?
複数のテーブルを含む単一のデータベースが最適です。
つまり、「研究所」と呼ばれるデータベースか、データを広く網羅するものです。その中に、ユーザー、パフォーマンス、および支払いのそれぞれのテーブルがあります。ユーザーには、ユーザーがスタッフ メンバー、管理者、学生のいずれであるかを指定する行が含まれている必要があります。支払いとパフォーマンスには、ユーザー ID にリンクされたフィールドが含まれている必要があります。
多くのテーブルを持つ単一のデータベースで十分です。また、一部の低コストのホスティングでは 1 つのデータベースしか提供されなかったり、別のデータベースの価格が追加されたりすることがあるため (最近ではほとんどありません)、より移植性が高くなります。すべての SQL がよりシンプルになるため、間違いなくより実用的になります。
別のデータベースを使用する理由の 1 つは、最初のデータベースを複製し、それを使用してサイト コンテンツの更新を編集者に実際に公開する前に表示する場合です。つまり、管理者または編集者が新しい投稿を書いたり、情報を更新したりすると、それを db1 に挿入します。サイトのコピーに db1 のプレビューが表示され、管理者が公開ボタンを押すと、1 つの SQL 命令で db1 を db2 に複製するだけで済みます。このようにして、エントリをテストするための「ステージング」サイトと、他のすべての人のための公開サイトができます。もちろん、重複したテーブルでもこれを行うことができますが、この場合、2 つのデータベースがよりクリーンでシンプルに感じられます。