2012-02-06 26 views
1

システムには2種類のユーザーが存在します。管理者と通常のユーザー管理者は製品にのみアクセスできます。管理者が製品Aにアクセスできる場合、管理者はそのすべてのサブ製品にもアクセスできることを意味します。ユーザー、製品、およびサブ製品のデータベーススキーマを設計するにはどうすればよいですか?

通常のユーザーは、1つまたは複数のサブ製品のみにアクセスできます。

追加する管理者ユーザーには製品がドロップされ、ユーザーを追加する画面にはサブ製品がドロップダウンされます。

製品管理者は製品サブユーザーを追加します。

管理者ユーザーと通常ユーザーの両方に1つのテーブルが存在します。他のものは両方のユーザーが同じであるためです。

助けてください。

+0

はい、この時点で私は役割には関係しません。 – ashishjmeshram

+0

具体的な質問がありますか? –

答えて

1

あなたは基本的に、この見ている:

SystemUser: Id, AccountName 
SystemRole: Id, RoleName 
UserRole: SystemUserId, SystemRoleId 
Product: Id, ParentId, Name 

ProductParentId上の自己参照を持つことになります。サブカテゴリでない場合は、ParentIdNULLである必要があります。 SystemRole"Admin"が定義されていない人には、 ParentIdのいずれかのProductにアクセスできないようにする必要があります。

UserRole

SystemRoleからSystemUserM:N関係を提供association tableあります。各ユーザーが単一の役割を果たすとしても、今のところこのような構造を設定することをお勧めします。これにより、将来アプリケーションの拡張が容易になります。

関連する問題