4

プロジェクト管理システムに関するデータベース設計のガイダンスが必要です。私の質問は主に、さまざまな役割の周りの機能のために列またはテーブルをどのように設計する必要があるかについてです。

システムには、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:以下の新しい画像をご覧ください。階層ごとのテーブルを使用して、さまざまなマネージャー(会社の会社管理者、プロジェクトのプロジェクトマネージャー、従業員のスーパーバイザー)を同じテーブルに格納することを考えています。これをデータベース設計としてどう思いますか。これがエンティティモデルでどのように機能するかを提案してください。

ここに画像の説明を入力してください

また、別の注意点として、私がプロジェクト、タスク、および従業員を接続した方法は正しいと思いますか?

ありがとう。

4

1 に答える 1

3

従業員テーブルはどれくらい大きくなるでしょうか? 管理者、スーパーバイザー、またはマネージャーとしての役割において、それらはすべて従業員です (ただし、スーパーバイザーがいる場合といない場合があります)。従業員を複数のプロジェクトに割り当てることはできますか? 従業員に複数のプロジェクトを割り当てることはできますか? 私の場合、従業員は一度に 1 つのプロジェクトにしか割り当てることができませんでした (または、特定の従業員の場合は割り当てられませんでした)。これにより、基本的な従業員オブジェクトを次のように変更できました。

他のオブジェクトのみが project_id の PK を持つプロジェクトです。

于 2012-07-22T16:01:13.347 に答える