在数据库中,我有以下表格:USERS、USERS_PROFILES、USERS_CLAIMS。
create table dbo.USERS
(
Id int identity not null,
Username nvarchar (120) not null,
Email nvarchar (120) not null
);
create table dbo.USERS_PROFILES
(
Id int not null,
[Name] nvarchar (80) not null
);
create table dbo.USERS_CLAIMS
(
Id int not null,
[Type] nvarchar (200) not null,
Value nvarchar (200) not null,
);
我正在使用索赔授权。当用户注册并创建身份时。身份包含声明,每个声明都有一个类型和一个值:
UsernameType > 来自 USERS 的用户名 EmailType > 来自 USERS NameType 的电子邮件 > 来自 USERS_PROFILES RoleType 的名称 > 直接来自 USERS_CLAIMS
所以我从 3 个表中的许多列创建身份。
我最终得到了这个,因为我迁移到了声明身份验证。
问题
我应该将用户名、电子邮件和姓名移动到 USERS_CLAIMS 吗?USERS_PROFILES 表将消失……而 USERS 表将仅包含诸如“UserId,LastLoginDate,CreatedDate,……”之类的信息
如果我想通过用户名获取用户,我只会得到用户名类型的声明......
如果我想登录用户,我只需获得所有声明并创建身份。
所以身份模型与 SQL 表非常相似。
这有意义吗?你会如何设计桌子?
谢谢你,米格尔