ユーザーの友達を保存するための次のデータモデルを作成しました-
データベース - 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
ここで、検索時にそれらを 1 次、2 次、3 次接続に分類する必要があります。
私が思いつくことができるオプション -
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 を実行する
ここで、すでに述べたアルゴリズム/モデルよりも多くのアルゴリズム/モデルを提案できますか。
ありがとう