データベースには、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,
);
請求承認を使用しています。ユーザーがサインアップし、ID が作成されたとき。ID にはクレームが含まれ、各クレームには型と値があります。
UsernameType > USERS からのユーザー名 EmailType > USERS からの電子メール NameType > USERS_PROFILES からの名前 RoleType > USERS_CLAIMS から直接
そのため、3 つのテーブルの多くの列から ID を作成しています。
クレーム認証に移行したため、これになりました。
質問
ユーザー名、電子メール、および名前を USERS_CLAIMS に移動する必要がありますか? USERS_PROFILES テーブルは消えます...そして、USERS テーブルには「UserId、LastLoginDate、CreatedDate、...」などの情報のみが含まれます。
ユーザー名でユーザーを取得したい場合は、ユーザー名タイプのクレームを取得するだけです...
ユーザーをサインインさせたい場合は、すべてのクレームを取得して ID を作成するだけです。
したがって、ID モデルは SQL テーブルに非常に似ています。
これは理にかなっていますか?どのようにテーブルを設計しますか?
ありがとう、ミゲル