通过postgres实现“朋友数据模型”

问题描述 投票:0回答:1

我需要一些有关如何设置即时解决方案的指导。我正在postgres中创建数据库,需要有关如何设置数据模型的帮助。

我正在使用个人应用程序,基本上我有用于用户,交易和组的表。

用户具有列(id, email)的事务具有列(id, amount, user_id, ...)

因此,基本要点是个人用户拥有自己的交易。对我来说,最棘手的部分是设置组部分

组可以包含2个或更多用户,而我想要实现的是当2个或更多用户成为一个组时,我希望所有用户都能够从其他用户交易中获得总金额。

[我认为使用适当的唯一性和约束将user_id_oneuser_id_two当作一个典型的“ friends数据模型”来处理groups表格会有所帮助,但会卡住。

所以我需要帮助的是,

该小组的桌子应该如何? (或者我可以采取另一种方法,添加另一张表?什么样的关系?)

查询应该看起来像什么,才能使两个用户都进行交易? (如果无法通过查询完成,我可以将服务器上的所有金额加起来)

任何帮助将不胜感激!

sql database postgresql data-modeling
1个回答
0
投票

所以据我了解,您应该创建某种链接表示例:

|  [User]  |             |[UserGroup]|             |  [Group]  |
|user_id   |             |id         |             |group_id   |
|email     | ∞         1 |user_id    | 1         ∞ |other_data |
|other data| ----------> |group_id   | <---------- |           |

然后例如,您可以编写查询以获取一组中的所有事务:

SELECT * FROM Transacions t JOIN UserGroup ug ON t.user_id = ug.user_id WHERE ug.group_id= ?;

我不知道您要查询什么,但这仅是示例。

© www.soinside.com 2019 - 2024. All rights reserved.