Hi,
wir werden wohl demnächst ein Projekt mit einer Firebird
DB starten.
Das Projekt soll wahlweise auf unterschiedliche Datenbestände (Mandanten) zugreifen können, z.B.:
Kunden
Lieferanten
Artikel
->Preise
usw.
Unser bisheriger Ansatz war, dass wir für jeden Mandanten eine eigene Datenbank anlegen.
Jetzt soll es aber möglich sein, dass sich alle Mandanten z.B. die Tabelle "Kunden" teilen. (falls gewünscht)
Das ganze soll möglichst flexibel gestaltet werden, damit man auf die entsprechenden Kundenwünsche schnell eingehen kann.
Meine bisherigen Ideen:
1. Alle Daten in EINE Datenbank schreiben und für jede Tabelle ein Feld "MandantID" führen. Hat den Nachteil, dass wir bei jedem
Query die MandatenID mit angeben müssen.
2. Alle Daten in EINE Datenbank schreiben, aber auf unterschiedliche Tabellen (mit Präfix) aufteilen. (z.B. Mandant1_Kunden, Mandant2_Kunden usw.)
Hat den Nachteil, dass wir bei jedem
Query die Tabelle ermitteln müssen.
3. Warten bis Firebird Cross-Table-Queries untersützt
Punkt 1 + 2 brauchen dann zusätzlich noch eine Verknüpfungstabelle.
Wie würdet ihr sowas machen?