簡體   English   中英

在數據庫中保存友誼。 社交網絡服務

[英]Saving friendship in the database. Social networking service

目前,我目前正以這種方式存儲在數據庫中

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()));

我必須做兩次。 這有點不方便。

您知道在數據庫中存儲用戶之間友誼的更好方法嗎?

如果您認為友誼是對稱的,則可以選擇重寫數據庫架構。 代替

id  from_id  to_id

它可能是

id  lower_id  higher_id

因此給定的友誼在數據庫中具有唯一的條目,您可以通過單個查詢刪除友誼。

缺點是,如果您想列出某人的朋友,則必須同時在 lower_idhigher_id查找此人

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM