1

我创建了以下数据模型来存储用户的朋友 -

数据库 - MySQL

tbl_user [ user_id - pk ]    
tbl_user_friend [ inviter_id - fk, friend_id - fk,  status - 1/2/3 ]   

status = 2 => friend , = 1 => invite ...

select friend_id from tbl_user_friend where inviter_id = <logged_in_id> and status = 2
UNION
select inviter_id from tbl_user_friend where friend_id = <logged_in_id> and status = 2

现在我需要在搜索时将它们分类为 1st、2nd、3rd 度连接。

我能想到的一个选择——

Convert above data into Graph and do BFS search.
Level of a node in BFS traversal will be its degree of connection.
  • 选项 1) 为此使用 MySQL OQGraph 引擎,但这需要特殊的 Mysql 构建
  • 选项 2) 在 MySQL 中使用存储过程进行 BFS

你能在这里推荐一些比我已经说过的更多的算法/模型吗?

谢谢

4

0 回答 0