Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL Problem beim Abgleich mehrerer Interessen

Dies ist definitiv mit MySQL möglich, aber ich denke, Sie gehen vielleicht auf eine umständliche Weise vor. Ich würde damit beginnen, die Tabellen wie folgt zu strukturieren:

TABLE Users ( userId, username, location )
TABLE Interests( interestId, hobby )
TABLE UserInterests( userId, interestId, level )

Wenn ein Benutzer ein Interesse hinzufügt, fügen Sie es den Interests hinzu, falls dies noch nicht geschehen ist Tabelle und fügen Sie sie dann zu UserInterests hinzu Tisch. Wenn Sie nach anderen Personen in der Nähe mit ähnlichen Interessen suchen möchten, können Sie einfach die UserInterests abfragen Tabelle für andere Personen mit ähnlichen Interessen, die all diese Informationen bereits für Sie bereithält:

SELECT DISTINCT userId
  FROM UserInterests
  WHERE interestId IN (
     SELECT interestId
       FROM UserInterests
       WHERE userId = $JoesID
     )

Dies kann wahrscheinlich eleganter ohne Unterabfragen erfolgen, aber genau das ist mir jetzt eingefallen.