Ich bin derzeit in einer Debatte mit einem Kollegen über die Best Practices in Bezug auf das Datenbankdesign einer PHP-Webanwendung, die wir erstellen. Die Anwendung ist für Unternehmen konzipiert, und jedes Unternehmen, das sich anmeldet, wird mehrere Benutzer haben, die die Anwendung verwenden.PHP-Webanwendung: Mysql Datenbank Design Best Practices Frage
Meine Entwurfsmethodik ist, eine neue Datenbank für jedes Unternehmen zu erstellen, das sich anmeldet. So ist alles sandboxed, modular und klein. Die Philosophie meiner Mitarbeiter besteht darin, alle in eine Datenbank zu stellen. Sein Argument ist, dass wir, wenn wir mehr als 1000 Unternehmen haben, mit über 1000 Datenbanken fertig werden. Ganz zu schweigen von der Unordnung, die Business Intelligence macht.
Nehmen wir als Beispiel an, dass die Anwendung ein Auftragserfassungssystem ist. Mit separaten Datenbanken kann die Tabellengröße auch dann überschaubar bleiben, wenn jede Firma mehr als 100 Aufträge pro Tag erledigt. In einer Single-Bucket-Anwendung können Tabellen sehr schnell sehr groß werden.
Gibt es eine Best Practice dafür? Ich habe versucht, im Web zu jagen, hatte aber nicht viel Erfolg. Links, Whitepaper und Präsentationen sind willkommen.
Vielen Dank im Voraus,
The1Rob
Datenpartitionierung (mittels Partitionstabellenregeln) ist möglicherweise eine andere Option, obwohl manchmal noch komplizierter zu verwalten. Und um gegen die Verwendung mehrerer Datenbanken vorzugehen, wissen Sie, dass dies die Berichterstattung überhaupt nicht beeinflusst? Man kann einfach die entsprechenden Tabellen über Datenbanken hinweg verbinden/verbinden und sogar übergreifende Datenbankansichten erstellen, die alle erforderlichen Berichtsdaten kompilieren. –
+1 Großes Beispiel der realen Welt. –