在我的ER模型中是一个结构化属性。
属性 user
除其他外还包含 authentification
属性。此 athentification
属性已链接到其他属性: algo
, salt
, { {1}} 和 hash
。
stretch
和 Salting
是保护密码的方法,对吗?
但是,如何定义这些属性是否与 hashing
属性相关联,并且所有属性都属于表authentification
的一部分?
我的代码:
user
答案 0 :(得分:0)
您应该对其进行规范化,并将身份验证类型移动到user
表引用的单独表中:
create table auth_type
(
id integer primary key,
algorithm varchar(10) not null,
stretch integer not null
salt VARCHAR(32) not null
hash VARCHAR(24) not null,
constraint check_algo CHECK(algo='sha1' OR algo='sha256')
);
CREATE TABLE [user]
(
ID INT PRIMARY KEY
LastLogin datetime2, -- I think only a time is probably not enough
Admin BIT,
Email VARCHAR(50) NOT NULL UNIQUE,
auth_id integer not null,
foreign key fk_user_auth (auth_id) references auth(id)
);