gpt4 book ai didi

mysql - 数据库表 - 是否足够规范?

转载 作者:搜寻专家 更新时间:2023-10-30 20:20:53 24 4
gpt4 key购买 nike

这是我为管理用户帐户而设计的两个表。

create table if not exists users (
id int unsigned not null auto_increment,
username varchar(100) not null,
password binary(60) not null,
first_name varchar(100) not null,
last_name varchar(100) not null,
role_id int unsigned not null,
primary key(id),
unique(username)
);

create table if not exists roles (
id int unsigned not null auto_increment,
role varchar(100) not null,
primary key(id),
unique(role)
);

我想我需要规范化第一个表,例如将第一个表拆分为某种用户信息(名字、姓氏、...)和帐户(用户名、密码、角色 ID)。我遇到的问题是我非常不确定为什么我需要这样做,因为我无法真正解释为什么它不在 3NF 中。

编辑

一个用户只能拥有一个角色(admin、poweruser、user)。

最佳答案

如果一个用户可以有多个账号,或者一个账号可以有多个用户,只需要将用户信息和账号信息分开即可。如果用户与帐户的关系始终是一对一的,那么您将按原样标准化。

如果很少使用第二个表中的列,有时将一对一关系中的列分开是有意义的。但是,在这种情况下,两个表似乎总是会被填充,因此分离这些列没有任何好处。

关于mysql - 数据库表 - 是否足够规范?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6512031/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com