在数据库中存储string []类型的数组

时间:2013-06-05 17:13:30

标签: sql-server tsql database-design

我正在建立一个程序表,我需要找出一种方法,以便“登录用户”只能访问该程序。

我最初的想法是将此信息存储在表格中的Certified列中,如此'JohnD', 'JasonD', 'JaneD'.然后,如果用户登录的是Certified中存储的用户名之一,我只能显示该过程{1}}栏。

我从Active Directory收集用户,因此我没有用户表。我可以轻松访问他们的用户名和全名等。

程序表将包含许多程序,然后我的KPI表可以为每个程序提供许多KPI。但是,我只希望登录的人能够查看他获得认证的KPI。

我能以一种好的方式解决这个问题吗?

2 个答案:

答案 0 :(得分:2)

这是一种多对多的关系。试试这个:

Procedure table
  procedure_id
  ... other columns in the procedure table

User Table
  user_id
  ... other columns in the user table

User_to_Procedure table (this is the join table)
  procedure_id
  user_id

每个user-can-access-procedure组合在user_to_procedure表中放置一行。

如果您有另一种识别用户的方式(如活动目录),则用户的表是可选的。在活动目录的情况下,连接表中的user_id是从活动目录获得的标识符。

以下是join table的维基百科链接。维基页面将其称为联结表,并将联接表列为同义词。

答案 1 :(得分:0)

仅仅因为您从AD获取用户并不意味着您不能在过程表中拥有用户表或对用户的引用。您可以按需填充其记录,也就是说,当用户需要访问与过程相关的内容时,您可以检查该用户是否经过身份验证,然后即时创建相关记录。