我们将在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 (主键) --名称
等
哪个键类型更好(首先,选择查询速度更快),以及为什么?谢谢。
发布于 2014-10-22 13:58:38
IMHO这是个糟糕的设计。
如果您需要添加一个级别,您将做什么?
不是很容易扩展..。
你应该只有一张桌子。
Organizations
Id Parent_Id Name数据样本:
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要查询此表,需要使用递推
https://stackoverflow.com/questions/26508814
复制相似问题