一个postgresql表中的几种类型的实体

时间:2019-03-02 12:24:41

标签: sql postgresql

我有几种类型的资源实体,例如 简历,空缺,公司,工人 等,它们具有一些共同的字段。

>

我还有一些其他实体,例如 注释,讨论,标签 ,这些实体可以(并非总是)绑定到任何类型的资源

目前,我有每个资源实体的表, 用于每个其他实体,以及用于不同实体之间公共字段的表,例如地址表。

但是在所有绑定表中,我都有诸如 entity_type entity_id 之类的列来引用资源实体我的笔记或讨论是必不可少的。

对所有资源实体仅使用一个表“ resource”而不对诸如以下所有字段使用列的缺点是什么?

entity_type
resume_field1
resume_field2
...
vacancy_field1
vacancy_field2
...
common_field1
common_field2
...

以及绑定到某些资源的实体的所有其他表将摆脱entity_type列,而仅使用entity_id列来引用资源。

我看到的优点是,如果删除资源实体,可以设置所有注释和讨论的级联删除

我可以想到这样的缺点,例如更多的RAM消耗,更多的磁盘空间使用和由于保留空字段而导致的速度降低,但是我不确定postgresql如何存储数据并在内部工作。

大多数资源字段是字符串(或文本)和布尔值。总共少于100列。

如果我为“资源”表设置了所有索引,会不会有任何弊端,或者确实会造成问题?

0 个答案:

没有答案