我有一个如下所示的表格来保存用户声明(1):
当我得到一个用户时,我总是需要从UserClaims中获取所有它的声明。
UserAccountID足以标识所有用户声明...
在选项(2)中,UserAccountID既是主键又是外键。
我需要能够向UserClaims添加以下行:
UserAccountID = 2,Type = Role,Value = Editor UserAccountID = 1,Type = Role,Value = Editor UserAccountID = 1,Type = Role,Value = Member UserAccountID = 1,Type = Name,Value = John
但我不能添加以下声明:
UserAccountID = 1,Type = Role,Value = Editor UserAccountID = 1,Type = Role,Value = Editor 我不能有两行完全相同。其他所有组合都是可能的。
我的想法是使用(2)。 它更接近我所习惯的做法... 你怎么看?
谢谢!
CREATE TABLE [dbo].[UserClaims] (
[UserAccountID] [int] NOT NULL,
[Type] [nvarchar](150) NOT NULL,
[Value] [nvarchar](150) NOT NULL,
CONSTRAINT [PK_dbo.UserClaims] PRIMARY KEY ([UserAccountID], [Type], [Value])
)
我有另一种选项来处理同一个表格 (2):
CREATE TABLE [dbo].[UserClaims] (
[UserAccountID] [int] NOT NULL,
CONSTRAINT PK_UserClaims_UserAccountId PRIMARY KEY CLUSTERED (UserAccountId),
[Type] [nvarchar](150) NOT NULL,
[Value] [nvarchar](150) NOT NULL,
CONSTRAINT UQ_UserClaims_Value_Type_UserAccountID unique (Value, [Type], UserAccountID)
)
我有一张表:
CREATE TABLE [dbo].[UsersAccounts] (
[UserAccountID] [int] IDENTITY NOT NULL,
CONSTRAINT PK_UsersAccounts_UserAccountId PRIMARY KEY CLUSTERED (UserAccountId)
)
当我得到一个用户时,我总是需要从UserClaims中获取所有它的声明。
UserAccountID足以标识所有用户声明...
在选项(2)中,UserAccountID既是主键又是外键。
我需要能够向UserClaims添加以下行:
UserAccountID = 2,Type = Role,Value = Editor UserAccountID = 1,Type = Role,Value = Editor UserAccountID = 1,Type = Role,Value = Member UserAccountID = 1,Type = Name,Value = John
但我不能添加以下声明:
UserAccountID = 1,Type = Role,Value = Editor UserAccountID = 1,Type = Role,Value = Editor 我不能有两行完全相同。其他所有组合都是可能的。
我的想法是使用(2)。 它更接近我所习惯的做法... 你怎么看?
谢谢!