iCalendar 形式を使用して予定を表示および編集/削除するには、Google カレンダー (基本機能のみ) に似たサービスを作成する必要があります。始める前に、この種の情報を保存するのに最適なデータベースはどれかお聞きしたいと思います。スケーラブルなソリューションでなければなりません。
お手数ですが、よろしくお願いいたします。
スケーラブルなデータベースが必要な場合は、NoSQLデータベース(MongoDB、CouchDBなど)を使用できます。この種のデータベースはスケーラブルに作られています。
しかし、「基本関数」のような「グーグルカレンダー」の場合、従来のSQLデータベース(たとえば、MySQLなど)も十分に大きくなります。ユーザーがたくさんいる場合でも。
したがって、NoSQLまたはSQLデータベースは使いやすいです。したがって、最も好きなデータベースを使用してください。
おそらくPDOを使用して、mysqlを安全に使用できます。このようにして、必要に応じて yuo はいつでも別のデータベースに移動できます。ただし、そのようなタスクには、mySQL で十分です。
質問の範囲が広いため、次のようなリレーショナル データベースを使用できます。
または、次のような NoSQL データベース:
どのデータベースを選択するかは、これらのデータベースに関する知識と経験に依存します。
個人的には、安定したオープン ソースであり、(最適化のヒントを含む) 豊富なリソースがあり、「無料」であるため、MySQL を使用します。
スケーラビリティについて尋ねるのは間違ったアプローチです。サービスが成長した場合に、どのようなスケーラビリティの問題が発生するかを単純に知ることはできません。
ある程度の変更を加えることなく、ほぼすべてのデータベース ソリューションをスケーリングできます。しかし、元のソリューションはそれ以上拡張できないため、最終的には、問題に対して根本的に異なるアプローチを取らなければならなくなります。
たとえば、高性能環境の MySQL は、ある時点でデータセット全体が RAM に保持されるように十分な RAM がインストールされているサーバーで使用され、ハードディスクは永続化のために全体の時間を書き込むだけです。ところで、ハードディスクはSSDの非常に高速なアレイです。
しかし、これらの巨大なサーバーでさえ小さすぎる可能性があり、「シャーディング」や「パーティショニング」などの戦術を適用して、複数のデータベース サーバーにデータ セットを分割する必要があります。マスター/スレーブ レプリケーションは、読み取りと書き込みが相互に干渉する場合に役立つ可能性があります。
開始する場合、基本的な質問は次のとおりです。少なくとも 1 人のユーザーにサービスを提供するために使用したいデータ構造は何ですか? どのデータベースでもこれをサポートできますが、データ構造とそれらに関する知識によっては、使いやすいものもあります。
サービスがない場合、ユーザーはいないため、スケーリングの必要性は減少します。