多くの町や村で小学校を運営するNGO(Non Govt Org)用のWebアプリケーションの設計と開発を担当しました。申請書には、すべての学校、学生、ボランティア、すべての学校の教師の記録が保管されます。現在、NGOの傘には約30の学校がありますが、彼らは非常に野心的な計画を非常に急速に増やす計画を持っています。 Windows Azureにアプリケーションをホストします。SQL Azureをデータベースとして使用します。今私は最小限の支出(NGOは慈善団体と寄付によって完全に資金が供給されているため)でデータベースを設計するという難しい作業に直面しています。 SQL Azureのデータベースは、5,10,20〜50 GBのような特定のサイズで提供されていることが分かっているので、各データベースの最大サイズに制限があります。私は以下のアプローチで出てきました:SQL Azureのスケーラブルデータベースの設計に必要なヘルプ
1)学校ごとに、5または10 GBのサイズのデータベースを作成します。各データベースには、「学生」、「科目」、「出席」などの表があります。このアプローチの問題は、多くのデータベースを作成する必要があることです。すべての学校に1つ。これは大幅にコストを吹き飛ばします。また、当初は10 GBの大部分が不足していましたが、将来は10 GBが学校のデータを保存するために少なく見えることがあります。
2) 'school'、 'student'、 'attendance'などのテーブルを持つ1つのデータベースを保存します。これは最初はコストを低く抑えますが、データベースが満杯になり、 NGOによって多くの学校が開設されているため、50GBのまた、「学生」と特に「出席者」の1つのテーブルは膨大な数のレコードを持ち、クエリを遅くします。将来別のデータベースを追加しても、複数のデータベースにまたがってテーブルを分割するのはどれほど簡単でしょうか。
制限を念頭に置いて、今後は進めません。 あなたからのアプローチや提案は、私たちにとって非常に役立ちます。 ありがとうございます。
編集:多くの人々に感謝私の質問に答えた。私はポイントを得た:50 GBは巨大なスペースであり、すぐにいつでも満たされないだろう。しかし、それは私に質問をもたらします:学校の数が200,300、または1000に成長する状況を考えてみましょう!!次に、私のデータベース設計はどのようにすべきでしょうか?私は50GBはそのような状況では大きくないと思います。
これは答えよりもコメントです – Horaciux