2010-03-06 7 views
1

Disons qu'il existe un objet Enseignant et que Teachers contient une liste d'objets Cours. Les cours pour l'enseignant peuvent changer. Certains sont ajoutés, d'autres sont supprimés. Quelle est la meilleure approche pour mettre à jour ces changements dans la base de données. 1. Après chaque modification, mettez à jour la base de données. Par exemple: un cours ajouté, ajoutez-le immédiatement dans la base de données. 2. Une fois que toutes les modifications ont été apportées à l'entité/à l'objet Enseignant (les cours ont été ajoutés, les cours sont supprimés), mettez à jour la base de données uniquement avec tous les changements. 3. D'autres ??Si un modèle de données change (un objet) quelle est la meilleure approche pour mettre à jour également la base de données?

Je peux voir à la fois pour 1 et 2 avantages et inconvénients. Pour 1: Je ne sais pas à quel point les modèles de données ont un accès direct à la base de données. Pour 2: L'algorithme est plus complexe car vous devez comparer les informations contenues dans les modèles de données avec les informations de la base de données en une fois.

Merci

Répondre

1

Jetez un oeil à quelques-uns des outils ORM disponibles pour votre langue ou la plate-forme. La représentation d'une entité dans la base de données peut toujours être désynchronisée. Par exemple, si un utilisateur a modifié une certaine propriété et qu'une mise à jour de la base de données a été tentée, mais pour une raison quelconque, cette mise à jour a échoué. Maintenant, ces deux éléments ne sont pas synchronisés.

Cela peut également dépendre de la fréquence des mises à jour de votre base de données. Si vous ne vous attendez pas à une activité massive en termes d'écritures dans la base de données, le déclenchement de mises à jour de base de données instantanées sur n'importe quel changement de propriété peut être une option.

Sinon, vous pouvez inclure un indicateur dirty dans votre objet pour indiquer quand il n'est plus synchronisé avec la base de données. Les modifications d'objet peuvent être mises à jour lorsqu'elles se produisent, ou lorsqu'un événement est déclenché, par exemple lorsque l'utilisateur décide de sauvegarder sa progression, ou périodiquement, toutes les x minutes. Différents langages et frameworks implémentent différemment ces objets de modèle. Dans Rails, un objet modèle est sous-classes de ActiveRecord et sait comment persister dans une base de données. En Java, vous mélangez rarement des objets de domaine avec la façon dont ils sont persistants. Cela est généralement pris en charge par un cadre ORM ou des objets personnalisés DAO.

0

J'ai découvert Hibernate. C'est exactement ce dont j'ai besoin et c'est simple.