用postgres实现“好友数据模型”

wj8zmpe1  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(370)

我需要一些关于如何设置我试图实现的指导。我正在postgres中创建一个数据库,需要帮助我如何设置数据模型。
我正在开发一个个人应用程序,基本上我有用于用户、事务和组的表。
用户有列 (id, email) 事务具有列 (id, amount, user_id, ...) 所以基本上是每个用户都有自己的事务。对我来说,最棘手的部分是设置组部分
组可以由2个或更多用户组成,我想要实现的是当2个或更多用户成为一个组时,我希望所有用户都能够从其他用户的事务中获得总金额。
我认为将groups表作为一个典型的“friends数据模型”来处理 user_id_one 以及 user_id_two 有了适当的唯一性和约束会有所帮助,但我被卡住了。
所以我需要帮助的是,
小组的table应该是什么样子(或者我可以采取另一种方法,添加另一个表?什么样的关系?)
查询应该是什么样的,它将获得两个用户的事务(如果无法通过查询完成,我可以将服务器上的所有金额相加)
任何帮助都将不胜感激!!

nhaq1z21

nhaq1z211#

所以我知道你应该创建一些链接表示例:

|  [Users]  |             |[UserGroups]|             |  [Groups]  |
|user_id    |             |id          |             |group_id    |
|email      | ∞         1 |user_id     | 1         ∞ |other_data  |
|other data | ----------> |group_id    | <---------- |            |

然后,对于exmaple,您可以编写查询来获取给定组的所有事务:

SELECT * FROM Transactions t JOIN UserGroups ug ON t.user_id = ug.user_id WHERE ug.group_id= ?;

我不知道你到底想问什么,但这只是个例子。

相关问题