0

イベント企画サイトを作っています。このサイトには、多くのユーザーがいます。各ユーザーには、独自の無菌領域があります。
例: 各ユーザーは、イベントとゲストのリストを作成できます。ここで、予定を作成した 2 人のユーザーが同じ人を招待したい場合があります。その人 (ゲスト) をデータベースに 2 回作成する必要があります。ここに私の考えがあります:

複数のデータベース

新しいユーザーごとにデータベースを作成します。各データベースには同一のスキーマがあります。

プレフィックス テーブル

たとえば、ユーザー 234 と 342 について話している場合、(同じスキーマを持つ) 234_guests と 342_guests という 2 つのテーブルが存在します。

すべてを支配する 1 つのテーブル

1 つの大きなゲスト テーブルがあり、主キーの一部は、ゲストが属するユーザーへの参照でもあります。

明確化: 私の質問を明確にしようとします: ジョンは私のウェブサイトでアカウントを開設します。彼は娘の結婚式を計画しています。ボブも私のウェブサイトでアカウントを開設し、息子のバー・ミツバを計画しています。ボブもジョンも、ジム・ハルパートという男を知っています。ボブとジョンの両方がジムを彼らの浮気に誘っている。ゲストを登録するには、ゲストの情報を入力する必要があります。Bob と John が同じゲストにアクセスできるようにしたくないのは明らかです (同じ人物であっても!)。私の質問は、そのような場合にデータベースをどのように設計するかです。


パフォーマンス、ロジック、データベースの正規化を考慮して、何が最適ですか?
他のオプションはありますか?

4

2 に答える 2

0

私がここで集めていることから、あなたは次の裁定を受けることになるということです =>

  • イベントは、複数のゲストと関係を持つことができます。
  • ゲストは複数のイベントと関係を持つことができます。

同じ人物の複数のインスタンスを作成するのではなく、ジャンクション テーブルを使用できます。理論的には、そのようにして非常に多くのデータを複製することになる可能性があります。

以下のリンクは、ジャンクション テーブルを使用する利点を示しています。これらは、イベントとゲストが多対多の関係を持つ上記のような例で使用できます。

この作品の例は、同様のジレンマ、複数の教室と複数の生徒をカバーしています。

http://megocode3.wordpress.com/2008/01/04/understanding-a-sql-junction-table/

お役に立てれば。

于 2012-11-29T10:17:45.340 に答える