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

Как да моделираме релации много към много в MongoDB (за потребител на MySQL)

Страхотен въпрос. Нека първо очертая малко как работи връзката N:N, след което ще навляза в подробности за всяка от вашите точки.

N:N в MySQL обикновено имате своя обобщена таблица, свързваща вашия потребител и интереси (таблица user_interests). В mongo правите това малко по-различно. Все още имате колекция от потребители и интереси, но вместо това сега съхранявате списък с ключове под интереси за даден потребител. И така, нещо подобно:

User Collection {
      "name":"Josh",
      "user":"jsmith",
      "interests":[
           {
            "_id":12345,
            "rating":"like"
           },
           {..}..
      ]
}

Съхранявайки интересите си в списък, който е изключен от таблицата с интереси, можете да извършвате всяко от действията, които искате. Ако искате да направите заявка, бихте я направили въз основа на идентификатора, който е в таблицата с интереси, след това направете заявка, използвайки $in модификатор .

Сега за вашата колекция от интереси бих направил следното:

User Interest {
      "_id":objectId
      "label":"Swimming",
      "count":intValue
}

Когато добавяте интерес към потребителски документ, променливата за броене ще зависи от определението на вашите оценки. Ако съхранявате оценките си в отделна област (или в логиката), тогава стойността, която сте им присвоили, ще бъде това, което свързвате тогава с int стойността в интерес. IE:Потребителят го оценява meh (което има стойност 1), тогава вие бихте добавили 1 към стойността на броя.

Надяваме се, че това е полезно и поне е довело до някои други идеи как да го структурирате!

Успех, не забравяйте, че МОНГО Е СТРАХОТЕН.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL:Кога са наистина необходими Flush Privileges в MySQL?

  2. C# MySQL пул за връзки

  3. Най-добри практики за URL с интервал и специални знаци

  4. конвертиране на MySQL заявка в синтаксис на Codeigniter

  5. използване на Oracle Loader за импортиране на HBase данни в таблицата на Oracle