0

複数のユーザーを持つことができるユーザーを含む db スキーマを作成しています。

複数の会社を登録してWebサービスを利用したい。

例えば:

  • ユーザー A または B (など) はサインアップして企業アカウントを作成できます
  • ユーザーAは、ユーザーBと同様に、他のユーザーの複数のアカウントをそのタイプで作成できます

ユーザー A または B が異なるアカウントを作成した場合、この特定のユーザーがユーザー A または B の会社に属していることをどのように確認できますか? ユーザーテーブルは、それ自体と多対多の関係を持っていると思います(基本的な友情の設計のように)。

最適なデザインをご提案ください。

元。

User 3,4 belongs to User A

User 5,6 belongs to User B

4

1 に答える 1

3

一般に、永続化しようとしているすべてのエンティティを特定することから始めることをお勧めします。質問には2つの異なるエンティティがあるようです。1 つは、1 人の人物を表す「ユーザー」です。2 番目のエンティティは「会社」です。「ユーザー」は会社に所属できます。

データベース設計の例としては、ユーザー用に 1 つのテーブルと、会社用に 1 つのテーブルがあります。「users」テーブルには、ユーザーが所属する会社の主キー (一意の ID) を参照する外部キー列が必要です。各ユーザーが 1 つの会社にしか所属できない場合、これは単純な 1 対多の関係になります。

要するに、企業アカウントはユーザー アカウントとは別に扱うことを強くお勧めします。これらは根本的に異なるエンティティだからです。

于 2016-08-28T17:49:03.960 に答える