MySQL - Praxistipps zum Datenbankaufbau!
Sebastian
- datenbank
Liebe Forenbesucher,
ich beschäftige mich schon längere Zeit mit dem Thema HTML und seite mehr als zwei Jahren immer wieder sporadisch mit dem Thema Perl (Gästebuch, Forum, eigene Perl-Anwendungen,..). Jetzt möchte ich eine MySQL-gestützte Internetseite aufbauen, insbesondere ein Artikel-System für einen Verein, bei dem mehrere Redakteure über ein Frontend, ähnlich dem eines Gästebuches, Artikel verfassen und mit Bild ins Internet stellen können. Wie das ganze unter Perl mit dem html-basierten Frontend aussieht weiß ich von früheren Projekten mit Gästebüchern mit Hilfe von txt-Dateien als Datenbankersatz.
Aber welche Struktur lege ich nun solch einer Datenbank für eine komplette Homepage zugrunde? Wie ist solch eine Datenbank aufgebaut? Nach welchem Prinzip gehe ich da am besten vor? Wieviele Tabellen lege ich an? Also alles Fragen rund um die MySQL-Datenstruktur.
Ich habe bisher zwar schon einige Dokumentationen zum Thema MySQL gefunden, doch keine wirklichen Tipps zur strukturellen Umsetzung in der Praxis, und um die praktische Umsetzung geht es mir hauptsächlich - grundlegende Erfahrungswerte die ich nicht erst selber sammeln möchte, um dann zu einem späteren Zeipunkt feststellen zu müssen, dass ich erst nochmal von vorne anfangen muss.
Wenn mir da jemand Tipps bzw. Links gerade zu diesem Thema, wäre ich sehr dankbar. Und so wie ich dieses Forum hier kenne...
Vielen Dank
Sebastian
Sup!
Wie wär's mit einem guten Buch über Datenbankdesign?
Entity-Relationship-Diagramme, Modellierung, Datenmodelle...
Gruesse,
Bio
Solch etwas muss es doch bestimmt auch als Onlinedokumentation geben?!
Sup!
Muss es?
Datenbankdesign ist doch beinahe Geheimwissen ;-)
Oder zumindest soviel weniger nachgefragt als HTML-Wissen, daß noch niemand Self-Datenbankdesign geschrieben hat.
Gruesse,
Bio
Hi Bio,
ohne die Leistung der Self-Autoren damit in Frage stellen zu wollen, aber Datenbankdesign lässt sich auch nicht so leicht formalisieren, wie die Verwendung eines vorgegebenen Rahmens für HTML.
Datenbankdesign ist doch beinahe Geheimwissen ;-)
Oder zumindest soviel weniger nachgefragt als HTML-Wissen, daß noch niemand Self-Datenbankdesign geschrieben hat.
Das ist deshalb Geheimwissenschaft, weil man unter Beachtung aller Regeln (totale Normalisierung, Redundanzfreiheit) wahrscheinlich nie zum Ziel kommt und immer fallbezogen an einigen Stellen davon abweichen MUSS, aber eben an den richtigen. Und das ist Philosophie.
Es gibt gute Versuche, eine Formalisierbarkeit herzustellen. Siehe ACCESS (ist ja leider nie fertig geworden). Oder den Oracle Developer 2000.
Ich gebe mal den Rat:
1. Papier, Bleistift, und Radiergummi bereit halten
2. Einsammeln sämtlicher bisher verwendeter Formulare, Papiere, Ausweise, Rechnungen, etc.
3. Stoffsammlung anlegen (einfach wild alle zu verwaltenden Werte auf ein groooßes Blatt schreiben)
4. Überprüfung, ob sich alle Formulare und Abläufe mit der Menge der gesammelten Werte (Variablen, Felder) darstellen lassen.
5. Regelwerk beschreiben "was passiert dann Maschine"
6. Variablenhaufen durchstrukturieren (Sinngruppen bilden)
7. Normalisierungsverfahren anwenden: welche Felder sind in den gebildeten Datensätzen ähnlich (z. B. hat ein Musterdatensatz vier Telefonnummern für privat, Firma, Sekretariat und Auto) Hier muss eine extra Tabelle angelegt werden. Oder in der vertikalen Richtung: ein komplexer Datenwert kommt immer wieder vor (Kurmittelhaus Garmisch-Partenkirchen). Dann muss er in eine seperate Tabelle mit Nachschlagewert.
8. Validierungen (Konsistenz)
9. Metadaten
10. Geschäftsregeln (Integrität)
11. ...
Das sollte für's erste genügen.
Liebe Grüße
Tom
Sup!
Wer seine Datenbankstruktur bis zur Boyce-Codd-Normalform normalisiert, den erkläre ich für psychisch krank ;-)
Gruesse,
Bio
Hi Bio,
<bruest>
na, das sag ich doch!
</bruest>
<leise class="ganz doll leise">
Äh, was ist das, die "Boyce-Codd-Normalform"?
</leise>
Tom
Hi Tom,
<leise class="ganz doll leise">
Äh, was ist das, die "Boyce-Codd-Normalform"?
</leise>
ist Dein Google kaputt? Bei sooo schönen Suchbegriffen ... (der erste Treffer war sogar in Deutsch)
Viele Grüße
Michael