0

在 SQL Server 中,我需要设计一个User表。它应该有一个UserID (int),一个RoleID (int)和一个UserName (nvarchar(255))

可以为用户分配一个名称,但也可以分配多个角色,因此 aUserId可能对应于多个RoleIDs。这使得很难将主键分配给UserID可能UserID重复的对象。

除了把它分成多个表之外,还有什么更好的设计吗?

4

2 回答 2

6

你应该有:

1. a user table with UsertId(int), UserName (Varchar)
2. a role table with RoleId(int), RoleName(Varchar)
3. a user_role table with user_id(int), role_id(int)

并且不要忘记添加正确的索引和外键。

于 2012-06-26T07:27:00.930 回答
2

是的,有一个表 Roles,然后是具有 UserID 和 RoleID 的 RolesUsers,最后是一个 Users 表

编辑:其中 RolesUsers 中的 UserID + RoleID 是复合键

于 2012-06-26T07:25:41.453 回答