在数据库中保存友谊。社交网络服务

时间:2017-10-04 22:42:07

标签: java spring hibernate spring-mvc spring-boot

目前,我目前正以这种方式存储在数据库中

id  from_id  to_id
1     1        2
2     2        1

我以这种方式写下这样的友谊

this.friendshipRepository.save(new FriendshipEntity(fromUser.get(), toUser.get()));
this.friendshipRepository.save(new FriendshipEntity(toUser.get(), fromUser.get()));

当我删除时

this.friendshipRepository.delete(this.friendshipRepository.findOneByFromUserAndToUser(fromUser.get(), toUser.get()));
this.friendshipRepository.delete(this.friendshipRepository.findOneByFromUserAndToUser(toUser.get(), fromUser.get()));

我必须做两次。这有点不方便。

您是否知道在数据库中存储用户之间友谊的更好方法?

1 个答案:

答案 0 :(得分:1)

如果您认为友谊是对称的,那么选择是重写您的数据库架构。 而不是

id  from_id  to_id

可能是

id  lower_id  higher_id

因此,给定的友谊在数据库中有唯一的条目,您可以通过单个查询删除友谊。

缺点是如果你想列出某些朋友,你必须在 lower_idhigher_id

中查找此人