Това определено е възможно с 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
)
Това вероятно може да бъде направено по по-елегантен начин без подзаявки, но сега се сетих за това.