2009-12-17 2 views
0

Imaginez un service où une User:has_manyEvents:through un Interest rejoindre modèle, et qu'il ya un drapeau Interest#attending pour indiquer si les plans de l'utilisateur d'être à l'événement.Y compris Rejoindre Attributs du modèle dans sérialisation

Si je veux retourner une liste d'événements, mais également inclure la valeur du drapeau #attending pour l'utilisateur actuel, je pouvais le faire:

<interests> 
    <interest> 
    <attending>true</attending> 
    <event> 
     ... 
    </event> 
    </interest> 
</interests> 

Mais je voudrais aussi revenir la valeur de l'indicateur #attending pour l'authentification lors de l'extraction d'un seul événement. (. Pour enregistrer un client d'avoir à faire une requête HTTP supplémentaire) Donc, je suis tenté de retourner quelque chose comme ceci:

<events> 
    <event> 
    <attending>true</attending> 
    ... 
    </event> 
</events> 

Y at-il raison de ne pas adopter cette approche?

Répondre

0

Cela dépend de la façon dont le client utilise les données. S'ils écrivent dans votre base de données, vous devrez traduire leur entrée dans un format acceptable (pas de statut de participation par événement). Mais si c'est juste affiché, je ne vois pas de problème avec ça. J'ai fait ce genre de dénormalisation dans certaines situations; il se sent toujours "mal", mais je n'ai pas eu de problème avec lui aussi longtemps que je le comportement document.

+0

Bon point. L'exemple que j'ai donné ne le montre pas, mais dans l'application elle-même, il s'agit essentiellement d'attributs en lecture seule et non directement modifiables par les clients. Merci. –

Questions connexes