J'ai une application Rails que je suis en train de concevoir. J'ai un modèle séparé qui doit être lié à seulement 2 d'un modèle. Plus précisément, mes «évaluations» ont deux «membres», un évaluateur et un évaluateur. Ils ont aussi quelques autres informations, mais elles ne devraient pas être pertinentes pour cela.Passer de 2 à plusieurs dans Rails
Quelle est la meilleure façon de représenter cela? Est-ce que 2 clés étrangères dans l'évaluation seraient les meilleures, ou une relation multiple entre les évaluations et les membres? Y aurait-il une autre option qui fonctionnerait encore mieux?
Je penserais d'abord beaucoup à beaucoup, mais comme il y a un nombre défini d'un côté de la relation, je doute de l'applicabilité ici. À ma connaissance, plusieurs-à-plusieurs implique généralement que le nombre de chaque côté de la relation est variable.
+1 convenu. Si le système est tel qu'il y aura toujours 2 relations, 2 FK sont les meilleurs. S'il peut y avoir un futur cas d'utilisation probable où vous pouvez avoir plus de 2, c'est quand vous devriez probablement utiliser un nombre de plusieurs. – DanSingerman
Et dans le cas où il y a un nombre arbitraire, mais chaque relation a un type (évaluateur/évalué), alors vous voulez probablement un modèle intermédiaire. Donc, il devient trois modèles - deux avec un 1: n et un 1: n-through, et un modèle avec deux 1: ns. –
La solution de Javier ci-dessous fait un bon point: ceux-ci: les noms de classe doivent être en majuscules. Les: foreign_keys sont redondants s'ils sont identiques au premier argument de belongs_to (le nom de l'association). –