sql - SQL 父表到许多表
问题描述
我的一个朋友建议我们在数据库上使用一些新方法,在该方法中我们创建一个父表,该表将包含一些我们通常在其他表或几乎所有表中使用的公共列,并且该父表将有一个标识列( ID) 和一个类型列来告诉该记录链接到什么,并且链接到该父表的所有表都将具有一个主键,该主键是父表中的 ID,并且可能有一些自己的额外列,但是还有一些链接到这个父表的表将只使用来自父表的大部分列,而不是全部。
例如:
***父表:
-ID(主要身份)
-CreateDateTime
-UpdateDateTime
-Name
-Description
-Location
-Type
-Status
-IsDeleted
***子表1:(这个没有使用父级的描述和位置)
-ParentID(主要)
-Color
-Size
***儿童桌2:
-ParentID(主要)
-Serial
-Price
还有更多像示例一样的表,正如我所说的,有些表可能只使用父表中的一列或两列,就像 C# 中的面向对象一样,您有一些类从另一个父类或基类继承。
这甚至是一件事吗?它好吗?
我担心这会在服务器中产生一些浪费的大小
解决方案
这正是 1990 年代James Martin在信息工程中实现实体类型和实体子类型时所做的。实际上在帮助保持数据完整性的同时节省了空间,因为否则您将不得不在基表中使用可为空的字段 - 或者具有完全未连接的表。值得在 OLTP 环境中追求,报告环境中的禁忌
推荐阅读
- python - 如何在 netcdf 文件中将 x,y 坐标投影到纬度/经度
- flutter - 如何从一个 Flutter 项目中制作多个主题应用程序?
- javascript - 为什么这行带有'await'的代码会触发微任务队列处理?
- javascript - 将字符串拆分为javascript中的一个单词
- jenkins - 找不到名为“freestyle”的项目
- javascript - div类的多个ajax响应
- sophoslabs-intelix - 上传大样本进行分析,给出意外响应
- jms - ActiveMQ rebalanceClusterClients 不适用于 Spring Boot JMS
- authentication - 如何为 Mantis - LDAP 和数据库用户设置双重身份验证?
- delphi - 编译 Delphi XE2 Delphi 10.2 的 TMemo 行中的不同字符