これはMySQLで間違いなく可能ですが、厄介な方法でそれを行っているのではないかと思います。まず、テーブルを次のように構成します。
TABLE Users ( userId, username, location )
TABLE Interests( interestId, hobby )
TABLE UserInterests( userId, interestId, level )
ユーザーがインタレストを追加するときに、それが以前に追加されていない場合は、Interests
に追加します。 テーブルを作成し、それをUserInterests
に追加します テーブル。同様の関心を持つ他の近くの人々をチェックしたい場合は、UserInterests
にクエリを実行するだけです。 同様の興味を持っている他の人々のための表。これには、すでにすべての情報が含まれています。
SELECT DISTINCT userId
FROM UserInterests
WHERE interestId IN (
SELECT interestId
FROM UserInterests
WHERE userId = $JoesID
)
これはおそらくサブクエリなしでよりエレガントな方法で行うことができますが、それは私が今考えていたものです。