首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PostgreSQL简单密钥与复合密钥

PostgreSQL简单密钥与复合密钥
EN

Stack Overflow用户
提问于 2014-10-22 13:38:53
回答 1查看 143关注 0票数 1

我们将在PostgreSQL中存储一些关于组织的信息(事实上,这是一些实体,但我说“组织”只是为了清晰的结构)。每个组织有6个次级级别。第一级-部门,第二(部门内部)-部门等。每个部门(就像部门和其他部门一样)可以有一个独特的名称。我们正在考虑7张桌子,如

表组织

id (主键) --组织名称

表level_1

id (主键) -- organization_id (外键) --名称

表level_2

id (主键) -- level_1_id (外键) --名称

我们假设在低级别(2-6)上,每个级别可以有数千个ob对象。问题是我们应该如何构造主键--作为简单键(如上面所述)或组合键。F.i。

表level_1

id (主键) -- organization_id (主键) --名称

表level_2

id (主键) -- level_1_id (主键) --名称

哪个键类型更好(首先,选择查询速度更快),以及为什么?谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-22 13:58:38

IMHO这是个糟糕的设计。

如果您需要添加一个级别,您将做什么?

  • 您需要添加一个表
  • 你需要修改你所有的代码,视图.

不是很容易扩展..。

你应该只有一张桌子。

代码语言:javascript
复制
Organizations
Id   Parent_Id    Name

数据样本:

代码语言:javascript
复制
1    NULL         Corporation
2       1         Division_1
3       1         Division_2
4       2         Dept_1_of_Division_1
5       2         Dept_2_of_Division_1
6       3         Dept_1_of_Division_2

要查询此表,需要使用递推

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26508814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档