首页 > 解决方案 > SQL 父表到许多表

问题描述

我的一个朋友建议我们在数据库上使用一些新方法,在该方法中我们创建一个父表,该表将包含一些我们通常在其他表或几乎所有表中使用的公共列,并且该父表将有一个标识列( ID) 和一个类型列来告诉该记录链接到什么,并且链接到该父表的所有表都将具有一个主键,该主键是父表中的 ID,并且可能有一些自己的额外列,但是还有一些链接到这个父表的表将只使用来自父表的大部分列,而不是全部。
例如:

***父表:

-ID(主要身份)
-CreateDateTime
-UpdateDateTime
-Name
-Description
-Location
-Type
-Status
-IsDeleted

***子表1:(这个没有使用父级的描述和位置)

-ParentID(主要)
-Color
-Size

***儿童桌2:

-ParentID(主要)
-Serial
-Price

还有更多像示例一样的表,正如我所说的,有些表可能只使用父表中的一列或两列,就像 C# 中的面向对象一样,您有一些类从另一个父类或基类继承。

这甚至是一件事吗?它好吗?

我担心这会在服务器中产生一些浪费的大小

标签: sql

解决方案


这正是 1990 年代James Martin在信息工程中实现实体类型实体子类型时所做的。实际上在帮助保持数据完整性的同时节省了空间,因为否则您将不得不在基表中使用可为空的字段 - 或者具有完全未连接的表。值得在 OLTP 环境中追求,报告环境中的禁忌


推荐阅读