Je ne fais que commencer avec MongoDB et Mongoid for Rails et j'ai besoin de conseils sur la bonne façon de concevoir une simple base de données de blogs.Conseils sur la structure simple de la base de données MongoDB
J'utilise actuellement la structure ci-dessous, mais j'ai besoin d'un moyen d'interroger tous les commentaires écrits par un utilisateur donné (l'équivalent db relationnel serait Comment.where('user_id = ?', user_id)
).
Est-ce la bonne configuration, ou devrais-je déplacer des commentaires dans leur propre document, et ne pas les intégrer dans les messages (comme je le ferais dans un schéma db relationnel)?
Appréciez tout conseil, merci.
Database Schema
post {
_id: (object id)
title: string
body: string
user_id: reference
comments: [
{ _id: (object id), body: string, user_id: reference },
{ _id: (object id), body: string, user_id: reference },
...
]
}
user {
_id: (object id)
name: string
}
En MongoDB, mes modèles correspondants sont les suivants:
class Post
include Mongoid::Document
field :title
field :body
embeds_many :comments
references_one :user
end
class Comment
include Mongoid::Document
field :body
embedded_in :post
references_one :user
end
class User
include Mongoid::Document
field :name
references_many :posts
end
Une fois que je posté, StackOverflow vomi [ce poste lié] (http://stackoverflow.com/questions/3813975/ mongo-db-design-embedding-vs-relations) qui fournit une bonne réponse. Toujours être bon d'avoir des opinions sur la meilleure approche si. –