Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ERD单个帐户下的多用户级别访问_C#_Sql Server_Sql Server 2008_Database Design_Erd - Fatal编程技术网

C# ERD单个帐户下的多用户级别访问

C# ERD单个帐户下的多用户级别访问,c#,sql-server,sql-server-2008,database-design,erd,C#,Sql Server,Sql Server 2008,Database Design,Erd,目前我有以下数据库设计 用户可以是个人,也可以是业务实体。如何扩展此数据库设计,以便在单个业务帐户下,业务可以允许多用户访问 例如,一家企业可能希望将其控制面板的访问权授予会计师、开发人员等。。。开发人员只能查看和管理应用程序,而会计师可以查看/下载交易等 USER Id Name Username Password ... PERSONAL_INFO UserId (PK-FK) FirstName MiddleName LastName .... BUSINESS_INFO Us

目前我有以下数据库设计

用户可以是个人,也可以是业务实体。如何扩展此数据库设计,以便在单个业务帐户下,业务可以允许多用户访问

例如,一家企业可能希望将其控制面板的访问权授予会计师、开发人员等。。。开发人员只能查看和管理应用程序,而会计师可以查看/下载交易等

USER
Id
Name
Username
Password
...




PERSONAL_INFO
UserId (PK-FK)
FirstName
MiddleName
LastName
....


BUSINESS_INFO
UserId (PK-FK)
BusinessName
....

这样行吗

USER_ACCESS?
Id
BusinessUserId 
GrantedUserId

USER_PERMISSION
Id
UserAccessId
PermissionId

PERMISSION
Id
Name

我认为,最好将实体BUSINESS_INFO和属性BusinessInfoId(BUSINESS_INFO表的外键)添加到USER表中。BUSINESS_GROUP表将具有主键BusinessInfoId(例如int类型)


请注意,个人信息表是多余的。它的字段必须在用户表中规范化,这意味着一个用户只能属于一个业务,其中可能有用户组,您有用户ID和业务信息。如果您需要“多业务-多用户”关系,那么当然,您需要像用户组一样的连接表。在这种情况下,用户表中不需要BusinessInfoId字段
USER
UserId
BusinessInfoId (FK)
Name
Username
Password
FirstName
MiddleName
LastName
...

BUSINESS_INFO
BusinessInfoId (PK)
BusinessName
....