【发布时间】:2010-11-22 08:02:37
【问题描述】:
我有四张桌子
create table entities{
integer id;
string name;
}
create table users{
integer id;//fk to entities
string email;
}
create table groups{
integer id;//fk to entities
}
create table group_members{
integer group_id; //fk to group
integer entity_id;//fk to entity
}
我想做一个查询,直接或间接返回用户所属的所有组。显而易见的解决方案是在应用程序级别进行递归。我想知道我可以对我的数据模型进行哪些更改以减少数据库访问并因此获得更好的性能。
【问题讨论】:
-
您能否定义一个实体以及它是如何关联的?
-
你用的是什么数据库引擎?
-
实体只是用户和组之间的一种通用抽象,那么成员既可以是组也可以是用户。我正在使用 PostgreSQL
标签: sql postgresql data-modeling