Einzelnen Beitrag anzeigen

nahpets
(Gast)

n/a Beiträge
 
#4

Re: Designfrage - Tabellenlayout

  Alt 23. Nov 2009, 09:49
Hallo,

schau Dir mal bei Wikipedia den Artikel zur Normalisierung von Datenbanken an: http://de.wikipedia.org/wiki/Normalisierung_(Datenbank)
Der hilft Dir da bestimmt bei den grundlegenden Überlegungen weiter.

Mein "grobes" Vorgehen ist folgendes:

Alles was an gemeinsamen Attributen vorhanden ist, in eine Tabelle, alles spezielle in entsprechende Tabellen, die nur die jeweiligen "Spezialattribute" enthalten und per Fremdschlüssel auf die gemeinsame Tabelle verweisen. Dies lässt sich beliebig in eine Baumstruktur aufteilen, da eine Spezialisierung von Spezialtabellen ebenfalls möglich ist.

Im Beispiel:

Alle Schüler und Lehrer haben gemeinsam eine Anschrift und die Kennung, von welchen Type (sprich Schüler oder Lehrer) sie sind -> eine Tabelle.
Lehrer haben von mir aus noch Attribute für Fächer und Ausbildung -> eine Tabelle für Fächer, eine Tabelle für Ausbildung.
Schüler haben eine Schulform (Grundschüler, Hauptschüler, Gesamtschüler, Realschüler, Gymnasiasten, beliebige berufsbildende Schulformen... -> eine Tabelle. Die schülerbezogenen Besonderheiten dieser Schulformen könnte man nun in weitere Tabellen aufteilen, sofern sie nicht für alle Schulformen identisch sind.

Spart das "mitschleppen" von Attributen, die nur teilweise genutzt werden und ist per SQL und Joins hervorragen, aufgabenspezifisch zu selektieren. Steckt man alles in eine Tabelle, so wird die (früher oder später) unüberschaubar breit (sprich: enthält Unmengen von Attributen, die nur jeweils in geringem Umfang genutzt werden).
  Mit Zitat antworten Zitat