2009-10-03 7 views
0

j'envisage la réécriture d'une partie des méthodes de l'application de mise à jour du modèle de données pour inclure le support pour l'enregistrement des événements à venir de la base de données. Y a-t-il des raisons pour lesquelles ce serait une mauvaise idée? Dois-je me limiter à recevoir des événements tirés par des opérations CRUD, ou pourrais-je programmer plus de la logique d'affaires autour des notifications d'événement? Quels pourraient être les pièges potentiels?Avantages et inconvénients des événements de base de données

Répondre

2

Utilisez certainement une méthode asynchrone. Si vous êtes sur un serveur Microsoft SQL plate-forme vérifier une combinaison de

1) Suivi des modifications disponibles Version SQL> 2008: service SQL http://msdn.microsoft.com/en-us/library/cc280462.aspx

et

2) Courtier, que vous pouvez vous inscrire pour les événements avec . (1. utilise en fait 2. sous le capot IIRC): http://msdn.microsoft.com/en-us/library/ms345108(SQL.90).aspx

Si vous devez revenir aux déclencheurs, gardez l'impact de la gâchette bien bas. Par exemple, créez votre propre journal des modifications et traitez-le ailleurs. Ne pas écrire une mise à jour et de savoir qui à l'information dans le même déclencheur que le changement lui-même. Cela ralentira beaucoup vos requêtes.

Il y a aussi des options en fonction de ce que la technologie couche de données que vous utilisez: NHibernate a le concept d'intercepteurs, même du côté Enterprise Framework. Mais ils ne fonctionnent pas dans la base de données, ce qui présente des avantages et des inconvénients.

HTH Alex

0

On dirait que vous envisagez de réagir à des événements de base de données dans votre logique métier. Si oui, ce serait en effet une très mauvaise idée, en ignorant presque tout ce qui est généralement considéré comme un bon logiciel de conception (Layering, Séparation des préoccupations etc.) ...

+2

Il est pas rare que les applications pour permettre aux utilisateurs de définir des montres sur des points particuliers, afin qu'ils être averti lorsque les données sont modifiées. Il existe des systèmes (généralement de nature sensible) qui émettent des notifications lorsque d'autres personnes regardent des éléments de données, ou même les recherchent. Il existe d'autres systèmes avec des processus autonomes qui surveillent les événements de base de données (par exemple le sous-système d'insigne SO). – APC

+0

Si quelque chose n'est pas rare, cela ne veut pas dire que quelque chose est bon ... Mais de toute façon : Bien sûr, je ne veux pas dire que la logique métier ne doit pas réagir aux événements persistance liés, mais qu'il est très mauvaise conception de coupler la logique métier étroitement liée à une technologie de base de données spécifique. Il devrait y avoir une sorte d'abstraction entre la logique métier et la base de données physique. –

Questions connexes