2009-07-14 7 views
8

私は、終了時にホストされたマルチユーザソリューションになるWebアプリケーションを開発中です。私は私のアプリのデータベース設計を処理する最良の方法を理解しようとしています。具体的には、複数の別々のアカウントを処理する方法を理解する必要があります。マルチユーザWebアプリケーションデータベースデザイン

私はそれを見て、いくつかのオプションがあります: 1)1組のデータベーステーブルがあります。それぞれの表に、適切なユーザーアカウントに各行をマップする「ユーザー」列または同様のものを含めます。 2)ユーザーごとに完全に別個のデータベースを作成します。パフォーマンス上の理由から、これは大したことではないようです。 3)1つのデータベース内の各ユーザーに個別のスキーマを作成します。各スキーマには、各ユーザーの表が含まれます。

この問題をどのように処理しますか?私が行方不明のオプションがありますか?この問題をどのように処理するかに違いがある場合、PostgreSQLをデータベースとして使用しています。

+0

[私のサイトの各ユーザにMySQLデータベースを割り当てるのは理にかなっていますか?](http://stackoverflow.com/q/327787/90527) – outis

答えて

6

私はほとんど常にオプション#1を使いました。それを正しく設計するなら、あなたのエントリーポイントであるいくつかのキーテーブルにあなたの「ユーザー」列が必要なだけで、他のすべてはそれらのキーテーブルから結合することができます。

5

大まかに言えば、構造が同じ複数のテーブル(またはデータベース)を持つことはほとんどありません。別のstuff_for_user_aテーブルとstuff_for_user_bテーブルの作成を検討している場合は、user列を含むstuffテーブルを作成することをお勧めします(つまり、オプション#2と#3の選択肢は同じです) #1)。

関連する問題