我的系统具有不同的用户级别取决于创建帐户时分配的内容。因此,有四个不同的级别1,2,3和4.第一级具有完全访问权限,然后下面的每个级别缩小到数据访问。因此,一旦用户登录,我应该从我的权限表中获取记录。一个帐户在权限表中可以有多个记录。这是一个例子:
AccountID UserName AccessLevel AccessType State City Building
FB3064A7 jfakey S F 05 NULL NULL
FB3064A7 jfakey S F 07 NULL NULL
您可以看到AccessLevel
列可以包含地区R
,州S
,城市C
或建筑B
。如果用户已分配区域访问权限,则只应有一条记录。如果存在任何其他访问级别(S,C或B),则用户可以拥有多个记录。以上示例具有州级别。分配给该帐户的状态有两种,我的查询将返回两行。我想知道我应该在两个单独的查询中拆分它还是坚持一次查询并合并行?我想知道什么会更有效,因为这是登录页面有很多点击。以下是我的查询示例:
SELECT A.AccountID, A.UserName,
P.AccessLevel, P.AccessType, P.State, P.City, P.Building
FROM Accounts AS A WITH (NOLOCK)
INNER JOIN Permissions AS P WITH (NOLOCK)
ON A.AccountID = P.AccountID
WHERE UserName = 'jfakey'
上面的查询是我现在拥有的,并返回两行。如果有人建议什么是最好的方法,请告诉我。