2009-04-25 2 views
0

Imaginons que vous possédiez un modèle d'événements contenant des informations sur l'événement. Mais qu'en est-il des choses comme les limaces, les titres et la description méta qui irait dans le code HTML?Quels sont les attributs qui devraient appartenir à une page et lesquels devraient appartenir à un modèle?

Il semblerait que de telles choses appartiennent correctement à un modèle de page plutôt qu'à un modèle d'événement.

Existe-t-il une manière correcte de le faire? Quels sont les avantages et les inconvénients d'une approche par rapport à l'autre?

Répondre

1

Un événement a des attributs de première classe et des attributs "dérivés".

Concentrons-nous sur Django. Par exemple, votre modèle peut avoir un long titre long et un slug dérivé. Par exemple, votre modèle peut avoir un long titre long.

Vous pouvez facilement définir des méthodes de classe pour ces données dérivées. Cependant, dans certains cas, vous devez dénormaliser votre modèle pour rendre les données dérivées persistantes. Dans ce cas, vous disposez d'attributs supplémentaires et vous définissez ces attributs via la méthode save(). «Correct» est bien défini - La 3e forme normale est correcte. Vous pouvez vous permettre de calculer des champs dérivés s'ils ne sont pas calculés très souvent. Dans certains cas, vous devez rompre 3NF et conserver les données pour des performances.

Questions connexes