Étant donné que vous devez mettre en œuvre un fil de nouvelles comme celui vu dans les réseaux sociaux, ex facebook. Actuellement j'utilise une classe News qui a une association polymorphe qui peut être de n'importe quelle sorte comme Image, Comment, Amitié, GroupMembership, etc. Chaque fois qu'un objet est créé, comme News est créé aussi. Cela fonctionne bien avec AR (ActiveRecords) mais j'ai des ennuis quand je passerais à DM (DataMapper) ou à Sequel car les deux ne supportent pas nativement les associations polymorphes et découragent son utilisation.comment éviter les associations polymorphes
Une solution de contournement serait d'utiliser une grande clause SQL avec beaucoup d'UNION pour fusionner toutes les différentes tables qui devraient être considérées comme des nouvelles. Mais cela a quelques inconvénients, escpecially performance serait terrible. Donc je me demande comment résoudre sans associations polymorphes tout en obtenant de bonnes performances et aucun autre inconvénient, comme avoir la possibilité d'ajouter des méta-données à une nouvelle?
Merci ... c'est une idée simple mais bonne :-). Cela demande quelques changements au modèle (renvoyant l'association réelle de l'arbitre) mais cela devrait être correct :) – gucki
Je ne pense pas vraiment que ce soit la solution. Il ne décrit pas vraiment le concept de par ex. un «révisable» pouvant être une «entreprise» ou une «personne» ou un «article». Même si vous avez chacun «business_id», «person_id», «item_id» dans une table «Review», vous devez trouver le premier champ non-nul de tous les champs pour vraiment savoir à quoi pointe la critique. Qu'en est-il des cas où une association particulière peut être l'une des nombreuses choses différentes? – fatuhoku