我创建了以下数据模型来存储用户的朋友 -
数据库 - 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
你能在这里推荐一些比我已经说过的更多的算法/模型吗?
谢谢