Nehmen wir an, Sie erstellen eine Anwendung, die mehrere Kunden bedienen muss (Daten werden nie zwischen Kunden geteilt) und die Kundendaten selbst sind sensibel.Ein Schema für alle oder Trennung von Schema für jeden Kunden?
Wie würden Sie die Datenbank entwerfen, um zu verhindern, dass Daten eines Kunden plötzlich (z. B. ein Fehler) für einen anderen sichtbar sind?
z. Wir haben eine Projekttabelle, die Projekte eines Kunden enthält. Jetzt könnten wir alle Projekte (von allen Kunden) in diese Tabelle übernehmen oder ein Schema für jeden Kunden erstellen.
Ich mag die Idee der Schematrennung (weil es die Daten völlig trennen würde), aber wie ich es nie getan habe, bin ich nicht sicher, ob dies ein guter Ansatz ist (zB Änderung des Schemas würde die Wartung aller Kundenschemata erfordern)).
Wichtig: Die Anwendung enthält Stammdaten, die für alle Kunden freigegeben sind (z. B. Kundenkonten, Einstellungen, Vorlagen usw.). Also ein weiterer Nachteil, was ich erwarte, wäre die Wartung von mehreren Verbindungen zur gleichen Zeit ...
UPDATE: Wäre es möglich, nur das Schema automatisch zu replizieren?
Ich denke, du hast den Punkt ... wenn es richtig codiert ist, will ich nicht den Aufwand haben, mehr Schemata zu verwalten. Wenn die App größer wird und Sicherheitsprobleme auftreten, wechseln wir möglicherweise. – Michal