Alles in eine Tabelle speichern oder mehrere?

suntrop

Erfahrenes Mitglied
Hallo DB-Gemeinde.
Ich habe vor einiger Zeit ein Tool programmiert, dass Kontakt Anfragen einer Website zusätzlich in einer MySQL DB speichert (+ Interface zur späteren Ausgabe). Da ich das Tool auf immer mehr Sites installiere und später auch warten muss, überlege ich gerade das Programm soweit umzubauen, dass ich es einmal installiere und dann sozusagen als SaaS "anbiete".

Und hier kommt die DB ins Spiel. Was haltet ihr für besser:
- jeder Website eine eigene Tabelle in der DB zu spendieren oder
- alle Websites/alle Anfragen in einer Tabelle zu speichern?


Felder sind die üblichen Verdächtigen wie Name, E-Mail, Text … , was sich auch in der DB so widerspiegelt. Mir geht es vor allem um leichte Wartung, flexible Erweiterung und eine gute Übersicht, gepaart mit Performance ;)

Lässt sich das überhaupt pauschal beantworten? Oder ist es gar egal?

Besten Dank fürs Lesen und die Hilfe!
 
Moin suntrop,

Ich habe vor einiger Zeit ein Tool programmiert, dass Kontakt Anfragen einer Website zusätzlich in einer MySQL DB speichert (+ Interface zur späteren Ausgabe).
Definiere "zusätzlich".
"Zusätzlich" im Sinne von "optional" (Beispiel: gespeichert wird es als FlatFile/in einem Nicht-mySQL-Format) ?
Oder "zusätzlich" im Sinne überhaupt dauerhaft aufbewahren (im Normalfall sind ja Kontaktabfragen in ihren Dimensionen eher überschaubar)?

. Mir geht es vor allem um leichte Wartung, flexible Erweiterung und eine gute Übersicht, gepaart mit Performance ;)
Na ja, die "leichte Wartung" bei "gleichzeitiger flexibler Erweiterbarkeit" ist ein Traum der IT-Utopisten seit Konrad Zuse.

Sagen wir so: wenn Du nächstes eine zentrale Datenbanktabelle mit Deiner internen Versionsnummer 1.32 im Einsatz hast und 200 Kunden, die die Bandbreite von Win2000 bis Solaris, vin MySQL 4.0 bis 6.2 mit 150 verschiedenen Locales und Languagesettings haben und "zusätzlich" noch Deine interne Version 1.32 abwärtskompatibel bis zum Stand von heute bleiben muss, weil dieser eine Kunde aus Castrop-Rauxel immer noch seine Version nicht upgedatet hat...

Du lädst Dir eine Menge Komplexeität und Verantwortung auf, wenn Du die Daten (ausschließlich) zentral UND noch in einer einzigen Tabelle bei Dir verwaltest.

Ich sehe die [Versions) Unterschiede bei den Kunden vor Ort und die dahinterhängende Notwendigkeit einer Versionsverwaltung als Problem an.

Grüße
Biber
 
Nabend Biber,

danke für deine ausführliche Antwort.

Zusätzlich im Sinne von neben der normalen E-Mail die beim Kunden ankommt, werden alle Daten aus dem Formular auch in einer DB gespeichert. Doppelt-Gemoppelt hält besser.
Grund: Die Anzahl der Anfragen variiert bei den Kunden stark und ein gesondertes Programm erleichtert denen die Arbeit.

Freut mich zu hören, dass ich ähnliche Gedankengänge wie der alte Zuse habe.

Auch wenn ich dein Plädoyer eher als "pro zentral" sehe, glaube ich hast du recht. Nur eine Tabelle wäre bei unterschiedlichen Formularen der Kunden sehr unhandlich.

Jedoch wäre z.B. ein Sicherheitsupdate sehr viel schneller an nur einer zentralen Stelle durchgeführt, als an vielen unterschiedlichen Installationen, die dazu noch in unterschiedlichen Versionsnummern vorliegen. Gleiches gilt dann auch für Funktionsupdates.

Als einzigen Nachteil sehe ich die höhere Komplexität an, da ich allgemein und im vorhinein festlegen muss, wie die DB aufgebaut sein soll. Da kommt noch etwas auf mich zu :-)

Ich poste mal ein Screenshot meines DB-Designs, wenn ich es angelegt habe!

Grüße
suntrop
 
Zurück