sql >> Base de Datos >  >> RDS >> Mysql

Cómo modelar relaciones de muchos a muchos en MongoDB (para un usuario de MySQL)

Gran pregunta. Permítanme primero resumir un poco cómo funciona la relación N:N y luego entraré en detalles sobre cada uno de sus puntos.

N:N en MySQL normalmente tiene su tabla dinámica asociada entre su usuario e intereses (tabla de intereses de usuario). En mongo haces esto un poco diferente. Todavía tiene una colección de usuarios e intereses, sin embargo, ahora almacena una lista de claves en intereses para un usuario. SO algo como esto:

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

Al almacenar sus intereses en una lista que está marcada en su tabla de intereses, puede realizar cada una de las acciones que necesita. Si quisiera hacer una consulta, la haría en función de la ID que se encuentra en la tabla de intereses, luego haga una consulta usando $in modificador .

Ahora, para su colección de intereses, haría lo siguiente:

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

Al agregar un interés a un documento de usuarios, la variable de conteo dependería de la definición de sus calificaciones. Si está almacenando sus calificaciones en un área separada (o en lógica), entonces el valor que les asignó sería lo que relacionaría con el valor int en interés. IE:el usuario lo califica meh (que tiene un valor de 1), luego agregaría 1 al valor de conteo.

¡Esperemos que esto sea útil y al menos haya generado algunas otras ideas sobre cómo estructurarlo!

Mucha suerte, recuerda que MONGO ES IMPRESIONANTE.