Je suis en train d'écrire une application rapide pour un utilisateur de suivre leurs factures quotidiennes (à des fins de suivi de l'argent). Je souhaite que l'utilisateur puisse définir ses propres catégories auxquelles une facture peut s'appliquer. J'essaie cependant de décider de la meilleure façon de modéliser cela et aussi de valider les catégories comme uniques.Mongo Question de conception avec Rails/Mongoid pour une application de suivi de facture
Ma première pensée était la suivante:
class User
include Mongoid::Document
embeds_many :bills
field :categories, :type => Array
end
class Bill
include Mongoid::Document
embeded_in :user, :inverse_of => :bills
field :category
index :category
end
Ainsi, un utilisateur peut ajouter des catégories, tout comme les chaînes, et quand ils ajoutent un projet de loi, ils choisiront de leurs catégories disponibles pour le projet de loi.
Alors, quelques questions:
Cela vous semble comme une bonne conception? Je ne pense pas qu'il soit nécessaire de définir un modèle de catégorie réel car il s'agit littéralement d'une chaîne utilisée pour indexer des factures, mais je ne suis pas sûr qu'il y ait d'autres avantages pour un modèle séparé
Comment valider_unicité de: catégories dans mon modèle d'utilisateur. Je ne pense pas que cela fonctionne sur des objets de ce type, mais je peux me tromper. Je ne veux pas qu'un utilisateur crée des catégories avec le même nom. Je suppose que cela pourrait être l'avantage d'un modèle séparé, intégré dans l'utilisateur, mais encore une fois, il semble que plus de travail que nécessaire.
Quelqu'un peut-il me dire mes meilleures options ici pour valider un utilisateur des catégories uniques (mais les utilisateurs peuvent avoir les mêmes catégories, je ne se soucient pas de toute évidence à ce sujet, tout simplement unique dans le cadre d'un seul utilisateur)
ce qui est plus d'un exercice pour le plaisir, je n'écris pas une application d'entreprise ou quoi que ce soit, je voulais juste apprendre mongo avec rails3 et je pensais qu'une petite application rapide comme ce serait un exercice amusant – brad
@brad: Je ne suis pas un gars Rails, mais je serais de stocker des catégories en ligne dans un tableau sous l'objet utilisateur. Laissez-moi mettre à jour ma réponse. –
merci pour la réponse, j'aurais dû mentionner que je sais évidemment comment faire cela manuellement avec un 'indexOf' ou' include? ', N'était tout simplement pas sûr s'il y avait une façon plus précise de faire cela. Je pourrais finir par sélectionner cette réponse, car elle répond techniquement à mon Q, attendra un peu. – brad