如何确定列是组合在一个表中还是拆分成多个表?

Tim*_*mmy 2 database database-design

我们应该总是组合一对一的桌子吗?

我有一个用户ID uid,一个包含基础知识的表:

uid, name, address, etc..
Run Code Online (Sandbox Code Playgroud)

和另一个基本相同的表,在前一个用户表上使用外键

uid, stats, etc..
Run Code Online (Sandbox Code Playgroud)

我应该把它们组合起来吗?什么时候才有意义,什么时候不想?

Joh*_*nFx 6

关系数据库五个普通表单上查看此资源.在其中,您将找到一些指导,用于决定如何组合信息或将其拆分为表格.

简而言之,请遵循以下经验法则:

  • 每个表应代表一种类型的东西.
  • 主键应该唯一地将该事物与表中的其他项区分开来.
  • 表中的每一列都应该取决于主键值和主键值.
    • 如果单个表中的多个字段形成逻辑子组(例如地址的一部分),那么它们可能值得拥有自己的表.