2 Stimmen

Wiederverwendung von SQL gespeicherten Prozeduren in verschiedenen Anwendungen

Ich bin neugierig, wie die Leute mit gespeicherten Prozeduren in einer Datenbank umgehen, auf die viele Anwendungen zugreifen. Neigen Sie dazu, für jede Anwendung einen anderen Satz gespeicherter Prozeduren vorzuhalten, versuchen Sie, einen gemeinsamen Satz zu verwenden, oder verwenden Sie eine Mischung?

Einerseits ermöglicht die Wiederverwendung von SPs weniger Änderungen bei einer Modelländerung oder Ähnlichem und im Idealfall weniger Wartungsaufwand. Andererseits können Änderungen an einer gespeicherten Prozedur für eine Anwendung andere Anwendungen beeinträchtigen, wenn die Anforderungen der Anwendungen voneinander abweichen. Ich sollte anmerken, dass in unserer Umgebung jede Anwendung ihr eigenes Entwicklungsteam hat, mit schlechter Kommunikation zwischen ihnen. Das Datenteam hat jedoch eine bessere Kommunikation und ist hauptsächlich mit dem Schreiben von gespeicherten Prozeduren betraut.

Danke!

1voto

Ed Schwehm Punkte 2155

Wenn wir gespeicherte Prozeduren hatten, die in mehreren Anwendungen verwendet wurden, haben wir eine Datenbank nur für diese Prozeduren (und Ansichten und Tabellen usw.) erstellt. Für diese Datenbank (die wir "Basis" nannten) wäre dann ein Entwickler (oder ein Team) zuständig (Wartung und Tests).

Wenn ein anderes Team eine neue Funktionalität benötigte, konnte es diese schreiben und der Basisentwickler würde sie entweder in die Basis-DB implementieren oder einen einfacheren Weg vorschlagen.

1voto

Jonathan Rupp Punkte 15162

Es hängt alles von Ihrer Abstraktionsstrategie ab. Werden die gespeicherten Prozeduren als diskreter Abstraktionspunkt behandelt, oder sind sie nur ein weiterer Teil der Anwendung, die sie aufruft.

Die Antwort auf diese Frage wird Ihnen zeigen, wie Sie mit ihnen umgehen können. Wenn es sich um eine diskrete Abstraktion handelt, können sie gemeinsam genutzt werden, denn wenn Sie neue Funktionen benötigen, fügen Sie neue Verfahren hinzu. Wenn sie Teil der Anwendung sind, die sie aufruft, sollten sie nicht gemeinsam genutzt werden.

1voto

Sean Gough Punkte 1731

Wir versuchen, wo immer möglich, eine einzige, gemeinsam genutzte gespeicherte Prozedur zu verwenden, aber wir sind auch schon in die von Ihnen beschriebene Situation geraten. Wir haben es durch Hinzufügen eines Anwendungspräfixes zu den gespeicherten Procs (ApplicationName_StoredProcName) gelöst.

Oft rufen diese gespeicherten Procs den zentralisierten oder "Master"-Proc auf, aber diese Methode lässt Raum für anwendungsspezifische Änderungen in der Zukunft.

0voto

Pete Michaud Punkte 1790

Ich glaube nicht, dass die gemeinsame Nutzung von Sprocs durch mehrere Anwendungen sinnvoll ist.

Ich kann mir vorstellen, dass es sinnvoll ist, eine Datenbank in verwandten Anwendungen gemeinsam zu nutzen, aber vermutlich sind diese Anwendungen zum großen Teil deshalb getrennt, weil sie die Daten sehr unterschiedlich behandeln.

Die Verwendung derselben Architektur könnte anwendungsübergreifend funktionieren, aber stellen Sie sich vor, dieselbe Geschäftslogikschicht in mehreren Anwendungen verwenden zu wollen. "Aber halt!", sagen Sie, "das ist doch albern... wenn ich dieselbe BLL verwende, warum sollte ich dann eine separate Anwendung haben? Die machen doch das Gleiche!"

QED.

0voto

Thomas Wagner Punkte 2472

Verwenden Sie idealerweise eine Proc und nicht mehrere Versionen. Wenn Sie Versionen pro Kunde benötigen, sollten Sie die Idee von 1 Datenbank pro Kunde im Gegensatz zu 1 Datenbank für alle Kunden untersuchen. Dies ermöglicht auch eine interessante Aufteilung der Datenbanken auf verschiedene Server (weisen Sie die größeren/stärker genutzten Datenbanken größeren Servern zu, während sich kleinere Datenbanken die Hardware teilen können).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X