2016-09-16 28 views
0

モバイルアプリケーションとWebクライアントを介してアクセスするレストサーバー用のデータベースをモデル化しようとしています。社員と顧客の両方がシステムのユーザーです。私はこれまで、データベースを設計するために継承ではなく構成を使用しました。私はこのanswerのデザインをそのまま使っています。SQL:従業員と顧客はユーザーですが、すべての従業員がユーザーではありません

  • User(user_idは、フルネーム、電子メール、ユーザ名)
  • Role(ROLE_ID、説明)
  • UserRole(user_role_id、USER_ID、ROLE_ID、DATE_FROM、date_thru)
  • Customer(user_idは、... )
  • Employee(USER_ID、...)

PR oblemは、従業員を持つ必要があるが、すべての従業員がユーザーではないということです。つまり、私は現在、従業員であるがシステムのユーザーではないドライバを含めるように指示されています。どうすればこのような関係を作ることができますか?

+0

ユーザー/顧客/従業員になることができる人を持っています – Serg

答えて

1

「人物」と呼ばれる別の構図レベルを持つことができます。したがって従業員と顧客は人であり、人はユーザーである可能性があります。

+0

私は試してみましょう...しかし、参加は今より長くなります – Obby

+0

私はこの方法を使用しました – Obby

1

ユーザーではない従業員の場合、user_idをNULLに設定できます。

+0

しかし、userテーブルはfullname、email等 – Obby

関連する問題