【发布时间】:2014-10-22 13:38:53
【问题描述】:
我们将在 PostgreSQL 中存储一些关于组织的信息(实际上这是一些实体,但我说“组织”只是为了结构清晰)。每个组织有 6 个子级别。第一级 - 部门,第二级(部门内部) - 部门等。每个部门(就像部门和其他部门一样)可以有一个唯一的名称。我们正在考虑 7 个表格,例如
表格组织
id(主键)--组织名称
表级别_1
id(主键)--organization_id(外键)--名称
表级别_2
id(主键)--level_1_id(外键)--名称
等
我们假设在低级别(2-6)上,每个级别可以有数千个 ob 对象。 问题是我们应该如何构造主键——作为简单键(如上所述)或复合键。 F.i.
表级别_1
id(主键)--organization_id(主键)--名称
表级别_2
id(主键)--level_1_id(主键)--名称
等
哪种键类型更好(首先,对于 SELECT 查询更快),为什么? 谢谢。
【问题讨论】:
-
您计划进行什么样的查询? 'cos
... for SELECT queries的范围定义太宽泛了?您是否需要查询完整的层次结构? -
它可以是各种查询:选择所有组织,选择某个组织中的所有部门,选择某个组织的某个部门中的所有部分等。所以是的,我们正在计划针对完整层次结构的查询。
标签: postgresql tree hierarchy composite-primary-key