查询多个连接或添加额外的列

时间:2014-10-29 13:03:29

标签: mysql sql postgresql

我有一个包含表A,B,C和D(所有一对多关系)的数据库。 A有很多B,B有很多C,C有很多D.现在我要添加另一个表Z.表Z将有很多A,而表A可以是另一个A的父亲递归。

现在,如果我想要查询与所有与另一个A具有相同Z的A相关的所有D,我必须得到Z的id并查询所有关系。如果表D有一个id为表Z的列会更快吗?我只能查询ID为Z的所有D.它会比查询所有关系更快吗?这样做是否正确?

A就像一个用户,Z就像一个群组,D可能是一个帖子。如果我想获得与我的用户在同一组中的所有用户的所有帖子,那么通过关系查询或者将组ID添加到帖子表是一个好主意更好(性能)吗?

1 个答案:

答案 0 :(得分:2)

如果D是帖子,我认为在帖子中添加群组不是一个好主意。帖子是由用户制作的,而不是由小组制作的。您可以实现允许您按组过滤的查询。查询将不会像在邮局表中拥有组ID那样简单,但这就是我的方式:)