前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >POSTGRESQL O 记数据库的功能 inheritance 继承

POSTGRESQL O 记数据库的功能 inheritance 继承

作者头像
AustinDatabases
发布2021-06-10 14:43:06
6370
发布2021-06-10 14:43:06
举报
文章被收录于专栏:AustinDatabases

OBJECT 对象,这个名词其实在数据库的层面很少被提及,4大世面上常用的关系型数据库,可以带有 O 这个标记的也只有POSTGRESQL。 其他数据库可以叫RDBMS, relational database management system .

面向对象,可以通过对象的属性进行分类,对象具有封装,继承,和多态性。今天要说的就是PG中的继承,继承表,而表继承可以完成的两个功能

1 table partitioning

2 multi-tenancy

通过表继承来完成分区表的方法已经随着PG的版本更迭可以被忘记了,那么剩下的multi-tenancy 就是PG体现OBJECT特性的一个展示。

其实要理解这个功能可以从层次图来理解

我们用下面的实例来说明继承的作用

create database rental_s;

create table rental_f (id integer not null,costomerid integer not null,order_number text not null,create_date timestamp not null);

create table desktop ( type text, mode text) inherits (rental_f);

create table laptop (type test,mode text) inherits (rental_f);

insert into desktop (id,costomerid,create_date,type,mode) values (1,23,'2021-05-01','desktop','T106');

insert into desktop (id,costomerid,create_date,type,mode) values (2,29,'2021-05-03','desktop','T104');

insert into desktop (id,costomerid,create_date,type,mode) values (3,27,'2021-05-04','desktop','T17');

insert into desktop (id,costomerid,create_date,type,mode) values (4,21,'2021-05-05','desktop','T109');

insert into desktop (id,costomerid,create_date,type,mode) values (5,22,'2021-05-02','desktop','T101');

insert into laptop (id,costomerid,create_date,type,mode) values (1,23,'2021-05-01','laptop','T106');

insert into laptop (id,costomerid,create_date,type,mode) values (2,29,'2021-05-03','taptop','T104');

insert into laptop (id,costomerid,create_date,type,mode) values (3,27,'2021-05-04','laptop','T17');

insert into laptop (id,costomerid,create_date,type,mode) values (4,21,'2021-05-05','laptop','T109');

insert into laptop (id,costomerid,create_date,type,mode) values (5,22,'2021-05-02','laptop','T101');

在创建完这两个表后,我们查看数据,

我们去查看rental_f 这两个表的父表,可以看到两个表的共同的数据列。

从设计的角度来看,3张表可以各有各的功用,单独对laptop进行查询则可以只查询laptop表, 而对desktop表查询可以查询到desktop的数据。如果是汇总所有电脑的销售的数据可以直接去rental_f 表查询。

这样的好处是分割了表的数据和功能,根据品类将数据分开,降低了单个表的数据的存储量, 这是一种另类思路的分区的方法,通过主表拥有的字段,与子表的数据的组合,可以通过程序的逻辑来进行任意的数据的分割存储。

而这样的继承的思路和概念来源于程序中的类,父类,子类的概念,将代码的思路引入到数据库的领域。这也是POSTGRESQL 可以称之为ORDBMS的体现之一。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-05-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AustinDatabases 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档