Jeder Kunde bekommt seine eigene Datenbank
Viele Anbieter legen alle Kunden in eine gemeinsame Datenbank und trennen sie über eine Spalte:
kunde_id = 42. Das ist bequem zu betreiben — und es bedeutet, dass ein einziger vergessener Filter
in einer Abfrage ausreicht, um Daten von Kunde 42 an Kunde 43 auszuliefern.
Wir gehen den anderen Weg: Jede Firma bekommt beim Bestellen ihre eigene Datenbank. Nicht ihr eigenes Schema, nicht ihre eigene Zeile — ihre eigene Datenbank.
Klassisches SaaS legt alle Kunden in eine Tabelle. Deine Zeilen liegen neben fremden.
Warum das kein Detail für Techniker ist
Der Unterschied klingt nach Architektur und ist in Wahrheit eine Aussage darüber, was im schlechtesten Fall passieren kann.
| Gemeinsame Datenbank | Eigene Datenbank je Kunde | |
|---|---|---|
| Trennung | Eine Spalte: kunde_id = 42. | Eine eigene Datenbank. Fremde Daten liegen nicht darin. |
| Ein vergessener Filter | Zeigt Daten anderer Kunden. | Zeigt nichts — es gibt nichts Fremdes zu zeigen. |
| Datenexport | Teilmenge eines fremden Bestands, muss herausgefiltert werden. | Abgeschlossener Bestand, als Ganzes übergebbar. |
| Selbst betreiben | Nicht vorgesehen. | Dieselbe Software, dieselbe Datenbank, anderer Ort. |
| Preis dafür | Günstiger im Betrieb — für den Anbieter. | Migrationen müssen über viele Datenbanken laufen. Der Aufwand liegt bei uns. |
In der gemeinsamen Datenbank ist die Trennung eine Regel, die bei jeder einzelnen Abfrage neu eingehalten werden muss. Bei tausend Abfragen im Code muss sie tausendmal richtig sein. Bei getrennten Datenbanken ist die Trennung eine Eigenschaft der Verbindung: Die Abfrage kann gar nicht woanders hinsehen, weil dort nichts anderes liegt.
Das ist der Grund, warum wir den Aufwand für richtig halten. Nicht, weil Anbieter mit gemeinsamer Datenbank unseriös wären — die meisten sind es nicht. Sondern weil die Sicherheitsaussage dort lautet „wir passen auf" und hier „es gibt nichts, worauf man aufpassen müsste".
Was das praktisch heißt
- Ein Bug kann keine fremden Daten zeigen. Es gibt keine fremden Daten in der Datenbank, in der er läuft.
- Umzug ist möglich. Deine Daten liegen als abgeschlossener Bestand vor, nicht als Teilmenge eines fremden Bestands. Das ist die Voraussetzung dafür, dass „Daten mitnehmen" mehr ist als ein Versprechen.
- Selbst betreiben bleibt eine Option. Wer aus regulatorischen Gründen im eigenen Haus hosten muss, kann das — es ist dieselbe Software auf derselben Datenbank, nur an einem anderen Ort.
- Eine Wiederherstellung betrifft nur dich. Wenn du einen Stand von gestern brauchst, wird deine Datenbank zurückgespielt. In einem gemeinsamen Bestand ist genau das die unangenehmste Frage überhaupt — man kann nicht einen Kunden zurückrollen, ohne die anderen anzufassen.
- Auslastung anderer bleibt außen vor. Ein Kunde mit einer großen Auswertung bremst nicht deine Erfassung.
Was es dich kostet
Nichts an Aufwand. Die Bereitstellung läuft automatisch: Du bestellst deine Module, und im Hintergrund entsteht eine Instanz, die nur dir gehört — inklusive Rechten, Stammdaten und der Dokumentation zu genau den Modulen, die du gebucht hast.
- 01
Bestellung
Bereich, Module, Hosting-Weg. Danach steht fest, was gebaut wird.
- 02
Eigene Datenbank
Nicht ein Schema, nicht eine Zeile — eine Datenbank, die nur dir gehört.
- 03
Module einziehen
Jedes gebuchte Modul bringt seine Tabellen, Rechte und Stammdaten selbst mit.
- 04
Rechte und Zugänge
Rollen stehen, bevor der erste Mensch sich anmeldet.
- 05
Updates
Migrationen laufen über alle getrennten Datenbanken — der Aufwand liegt bei uns.
- 06
Ausziehen
Abgeschlossener Bestand, als Ganzes übergebbar. Kein Herausfiltern nötig.
Der Preis dafür liegt bei uns, nicht bei dir: Wir müssen Migrationen so bauen, dass sie über viele getrennte Datenbanken hinweg zuverlässig laufen. Das ist mehr Arbeit als ein einziges großes Schema zu pflegen — und es ist eine andere Art von Arbeit:
| Gemeinsame Datenbank | Eigene Datenbank je Kunde | |
|---|---|---|
| Update einspielen | Einmal, überall wirksam | Über alle Instanzen, jede muss durchlaufen |
| Fehlgeschlagene Migration | Betrifft alle gleichzeitig | Betrifft eine Instanz, die anderen laufen weiter |
| Kunden mit Sonderstand | Schwierig — alle teilen ein Schema | Möglich, ohne die anderen zu berühren |
| Aufwand beim Anbieter | Niedrig | Hoch, dauerhaft |
| Aufwand beim Kunden | Keiner | Keiner |
Die letzte Zeile ist der Punkt. Die Entscheidung verschiebt Arbeit vom Kunden zum Anbieter — und genau deshalb wird sie selten getroffen.
Wo diese Datenbank steht
Der Ort ist eine zweite, davon unabhängige Frage. Getrennte Datenbanken kann man in Deutschland betreiben, in der EU, oder bei dir im Haus. Wir bieten alle drei Wege an; die Hosting-Wege stehen hier.
Wichtig ist die Reihenfolge der Argumente: „Server in Deutschland" beantwortet die Frage nach dem Ort. Die Frage nach der Trennung beantwortet es nicht — beide Bauformen können in derselben Stadt stehen. Was daraus für Zugriffsrechte, Löschfristen und Auskunftsanfragen folgt, steht im Beitrag über DSGVO in der Betriebssoftware.
Und wenn du irgendwann wieder gehen willst: Der Bestand ist da, als Ganzes, ohne dass jemand ihn erst aus einem fremden herausfiltern muss. Wie so ein Umzug abläuft — in die eine wie in die andere Richtung — steht im Beitrag über den Wechsel aus dem alten System.
- Technik
- Datenschutz