ユーザー、製品、およびサブ製品のデータベーススキーマを設計する方法

システムには2種類のユーザーがあります。管理者と通常のユーザー管理者は製品にのみアクセスできます。管理者が製品Aにアクセスできる場合、管理者はそのすべてのサブ製品にもアクセスできることを意味します。

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

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

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

AdminユーザーとNormalユーザーの両方に1つのテーブルが存在するため、他のユーザーはすべて同じです。

助けてください。

1
はい、この時点で私はその役割には関心がありません。
追加された 著者 ashishjmeshram,
あなたが聞きたい特定の質問はありますか?
追加された 著者 Neville Kuyt,

1 答え

あなたは基本的にこれを見ています:

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

Product will have a self-reference on ParentId. If it's not a sub-category then ParentId should be NULL. You'll want anyone who doesn't have a SystemRole of "Admin" defined to be unable to access any Product that has a NULL ParentId.

UserRole is an association table that provides the M:N relationship of SystemUser to SystemRole. Even if each user will have a single role it's a good idea to set up the structure this way for now so your application is easier to expand in the future.

1
追加された