Frage

Wir haben zwei Produkte:

  1. BI-Berichte (Business Information)
  2. Soziale Netzwerke

Produkt ‚Social Networking‘ ist eine Web-Anwendung, die Benutzer in einem Unternehmen zusammenarbeiten lassen -. Insbesondere im Hinblick auf die Produkt BI Berichte "

Wir haben eine Datenbank, die beiden Produkte Aktie. Sie haben jeweils ihre eigenen Tabellen in der Datenbank, und auch einige ‚Benutzerverwaltung‘ Tabellen teilen.

Jedes Produkt verfügt über einen eigenen Release-Zyklus - wenn wir eine neue Version von ‚Social Networking‘ freigeben, werden wir nicht immer Release eine neue Version von ‚BI-Berichte‘.

Ich habe jetzt Kopfschmerzen in Bezug auf Datenbank Upgrade / Versionierung, wenn eine Kundenversion ‚X‘ von ‚BI Reporting‘ und Version ‚Y‘ von ‚Social Networking‘ hat. Intern wird die Datenbank hat dann zwei Versionen.

Ich denke, die beste Idee ist es, die Datenbank in zwei aufgeteilt - jedes Produkt erhalten ist es die eigene Datenbank und ‚Social Networking‘ bekommt Benutzerverwaltung Informationen über einen Web-Service von BI-Berichte 'angeboten. Doch der Rest meines Teams denke, das ist zu viel Arbeit ist und nicht, wie die Idee.

Hat jemand Erfahrung in Bezug auf Datenbanken zwischen mehreren Anwendungen zu teilen?

War es hilfreich?

Lösung

Wir haben ein Produkt, das aus mehreren verschiedenen Modulen besteht. wählen, und wählen können Kunden, welche Module installiert sind.

Alle Module teilen sich ein Kernstück, das breite verfügt über Benutzer-Logins und andere sehr allgemeine Website behandelt.

Dieses Erschwerend ist, dass einige der Module von anderen abhängig sind. Wir haben einen modularen Ansatz, um auf einfache Weise große Teile des Codes zu nehmen und einfach neue Module bauen.

All das heißt, wir haben eine ähnliche Situation, dass jedes Modul versioniert und möglicherweise separat freigegeben. Um damit umzugehen haben wir zwei Dinge.

Als erstes wird jedes Modul in einer gemeinsamen Tabelle db registriert es aktuelle Versionsnummer ist. Es wird auch keine Sicherheitsrollen und Aktionen in den gemeinsamen Tabellen registrieren. Diese Kontrollen sind allgemein genug, dass der Kern damit umgehen kann. Zweitens hat jedes Modul seine eigene Schema in der Datenbank. dh: module1.Table1, module2.Table2. Dies erlaubt uns, die gleichen Tabellennamen über mehrere Module zu haben.

Wenn wir ein bestimmtes Modul aktualisieren, es wirkt sich nur auf seine eigene DDL (Struktur / data / s'procs / Ausblick). Wenn es eine Abhängigkeit zwischen den Modulen ist, wird dies durch die Modernisierung Werkzeug behandelt. Es überprüft die Datenbank, ob Version xyz (oder besser) des zugehörigen Modul installiert ist. Wenn es dann das Upgrade fortgesetzt. Wenn nicht, dann werden die Upgrade-Abbrüche und teilt dem Benutzer müssen sie zuerst die anderen Teile aktualisieren.

Die Hauptsache von diesem wegzunehmen ist die Abhängigkeitsprüfung. Wenn Ihre Module wirklich getrennt sind und nur die gemeinsamen Sicherheitskontrollen teilen dann spielt es keine Rolle, dass alle viel. Wenn es jedoch einige andere überlappen dann das Installationsprogramm für die Bedürfnisse jedes einzelnen, um die Versionen zu überprüfen, um sicherzustellen, dass sie kompatibel sind.

Sie könnten sogar einen „vollständigen“ Installateur bereitzustellen, die für die beiden Anwendungen auf dem aktuellen Niveau Upgrades, die Art und Weise sind nicht synchron.

Andere Tipps

, wenn diese eine Managemententscheidung ist, dann würde ich es so nähern:

  1. , wie viel Zeit / Ressourcen braucht es, um das System zu verwalten wie?

  2. , wie viel Zeit / Ressourcen dauert es, bis das System in den vorgeschlagenen neuen System zu überarbeiten?

  3. , wie viel Zeit / Ressourcen wird es dauern, um das System zu verwalten, wenn die Änderungen vorgenommen werden?

Unter der Annahme, gibt es einige Ressourceneinsparungen durch die Änderungen vorgenommen hat, dann sollte es eine cutover Zeit sein, wenn es eine Rendite aus der Investition ist. wenn die Länge der Zeit zwischen jetzt ein Manager und dann zu entscheiden, wäre in der Lage ist, lohnt sich die aktuellen Kosten der Bemühungen gegen andere Gegenstände, die Priorität in Anspruch nehmen müssen.

hth

ich denke, das berührt mehr als Release-Zyklus -. Wir denken darüber ziemlich viel uns

Unsere Katalogisierung Anwendung verfügt über eine BI Aspekt, es so gut, aber wir finden, dass die BI-Teil kann die Leistung des Katalogs werden zu beeinflussen.

Ich erwähne das, weil Sie vielleicht, dass separate Datenbanken für die beiden Anwendungen finden könnte funktionieren nicht nur für die Release-Management, sondern auch die Leistung. Periodic ‚Archive‘ von Schlüsseldaten aus Ihrem Social-netowrking App Ihres BI-App könnten Sie das Beste aus beiden Welten -. Leistung in dem Social-App und Release-Management

Nicht sicher über die gemeinsamen Benutzerverwaltung Aspekt für Sie ...

Wenn Sie eine gemeinsame Tabelle ändern, müssen Sie beide Apps aktualisieren. Sie können nicht über einen separaten Release-Zyklus haben.

Dies ist offensichtlich .... nein?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top