sql - 数据库表;将它们散开,还是将它们归零?

标签 sql database database-design ddl multiple-tables

关于数据库设计的快速问题;

假设我将 User 数据存储在数据库中,我可以识别两种(看似)与用户关联的独立数据形式; 帐户数据个人资料数据

大多数配置文件数据是可选的,并且是不必要的(可以,而且通常会是 NULL),而帐户数据对于用户来说是不可或缺的,并且他们能够使用服务(很少或没有记录可以/将是 NULL)

1-to-1 将其分成两个表有什么好处吗?仅从设计的角度来看,这似乎合乎逻辑,但在谈到性能时,这是一种常见的()做法吗?

最佳答案

从逻辑设计的角度来看,实体类型是由它所具有的属性定义的。每组独特的属性都定义了不同的事物,除非您有充分的理由不这样做,否则应该放在自己的表中。使用范式和正交设计原则等设计原则来验证哪些属性属于哪个表。

这样做的好处是您不需要为不存在的属性值创建空值或虚拟值。以这种方式使用 null 几乎不可避免地会导致错误、不明确的结果和以后的妥协。

关于sql - 数据库表;将它们散开,还是将它们归零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6812241/

相关文章:

mysql - 在子查询mysql中返回多行

database - 约束为数据库提供了哪些优势?

database - Cakephp 表单错过通信

java - 我应该使用文本文件还是数据库?

database-design - 调度员工 - 使用什么数据结构?

ms-access - 查找与关系 Microsoft Access

sql - 一个查询Oracle数据字典的程序

php - SQL 将行从一个表复制到另一个表但只复制一次

php - 为什么 case 表达式不适用于 PHP 中使用的 SQL 查询连接?

mysql - 在数据库中为不同的用户类型存储多个电子邮件地址