Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL Проблем за съвпадение на множество интереси

Това определено е възможно с 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
     )

Това вероятно може да бъде направено по по-елегантен начин без подзаявки, но сега се сетих за това.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да накарам UTF-8 да работи в уеб приложения на Java?

  2. Изтеглете csv от codeigniter mysql

  3. Повтарящи се събития от календара и някои последни изчисления

  4. SQLDependency върху база данни MariaDB/MySQL

  5. Намиране на минимума в колона, където две други колони са нула