プロジェクト管理システムに関するデータベース設計のガイダンスが必要です。私の質問は主に、さまざまな役割の周りの機能のために列またはテーブルをどのように設計する必要があるかについてです。
システムには、Usersテーブルに複数のユーザーがあり、Rolesテーブルに次のロールがあります (Company Adminis、Project Manager、Supervisor、Alternate Supervisor、Employee)
関係するさまざまなエンティティは、Users、Roles、UserRoleMapping、Company、Projectsです。
- 会社には多くのプロジェクトがあり、1つ以上の会社管理者がいます
- すべてのプロジェクトにはプロジェクトマネージャーがいます
- すべてのプロジェクトには、複数の従業員が割り当てられています
- 各従業員にはスーパーバイザーがいます
EntityFrameworkモデルにうまく変換できる優れたデータベース設計を探しています。
これは私が考えたアプローチであり、フィードバックをいただければ幸いです。ユーザー、ロール、UserRoleMapping機能を提供するデフォルトのASP.NETメンバーシップを使用してください。
次に、MembershipのベースUsersテーブルを使用し、ロール固有のテーブルを作成して、さまざまなユーザー(Employees、CompanyAdmins、Supervisors)を格納します。
更新2:以下の新しい画像をご覧ください。階層ごとのテーブルを使用して、さまざまなマネージャー(会社の会社管理者、プロジェクトのプロジェクトマネージャー、従業員のスーパーバイザー)を同じテーブルに格納することを考えています。これをデータベース設計としてどう思いますか。これがエンティティモデルでどのように機能するかを提案してください。
また、別の注意点として、私がプロジェクト、タスク、および従業員を接続した方法は正しいと思いますか?
ありがとう。