Dette er helt sikkert muligt med MySQL, men jeg tror, du kan gøre det på en akavet måde. Jeg vil begynde med at strukturere tabellerne som følger:
TABLE Users ( userId, username, location )
TABLE Interests( interestId, hobby )
TABLE UserInterests( userId, interestId, level )
Når en bruger tilføjer en interesse, hvis den ikke er blevet tilføjet før, tilføjer du den til Interests
tabel, og tilføj den derefter til UserInterests
bord. Når du vil tjekke efter andre personer i nærheden med lignende interesser, kan du blot forespørge på UserInterests
tabel for andre mennesker, der har lignende interesser, som allerede har alle disse oplysninger til dig:
SELECT DISTINCT userId
FROM UserInterests
WHERE interestId IN (
SELECT interestId
FROM UserInterests
WHERE userId = $JoesID
)
Dette kan sikkert gøres på en mere elegant måde uden underforespørgsler, men det er det, jeg tænkte på nu.