【发布时间】:2013-10-11 08:30:43
【问题描述】:
在数据库中,我有以下表格: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 的用户名 电子邮件类型 > 来自用户的电子邮件 NameType > 来自 USERS_PROFILES 的名称 RoleType > 直接来自 USERS_CLAIMS
所以我从 3 个表中的许多列创建身份。
我最终得到了这个,因为我迁移到了声明身份验证。
问题
我应该将用户名、电子邮件和姓名移至 USERS_CLAIMS 吗? USERS_PROFILES 表将消失... 并且 USERS 表将仅包含诸如“UserId、LastLoginDate、CreatedDate、...”之类的信息
如果我想通过用户名获取用户,我只会得到用户名类型的声明 ...
如果我想登录用户,我只需获取所有声明并创建身份。
所以身份模型与 SQL 表非常相似。
这有意义吗?你会如何设计桌子?
谢谢你, 米格尔
【问题讨论】:
标签: sql database-design