Rouven: Daten und Struktur trennen

Beitrag lesen

Hello,

ein Gedanke, den man natürlich nicht außer Acht lassen darf, ist Performance. Wenn du für jede gesuchte Information erstmal nachschlagen musst, wo du sie überhaupt findest, bzw. zu einer gefundenen Information erstmal rausfinden musst, worum es sich handelt, dann kostet das Laufzeit. Generell ist es aber z.B. für Kontaktinformationen ein nicht ganz unübliches Verfahren mit einer dynamischen Attributstruktur zu arbeiten:

kontakttyp
1 | telefon
2 | mobiltelefon
3 | email

person_kontakt
personid | kontaktid | wert
1        | 1         | 069...
1        | 2         | 0151...

Neben der Performance sollte man auch im Hinterkopf behalten, dass es weitere Klimmzüge braucht um unterschiedliche Datentypen zu verarbeiten. Im obigen Beispiel bist du praktisch gezwungen, alles als Zeichenketten abzulegen. Was, wenn es sich jetzt um Zeichenketten, vermischt mit Zahlen, vermischt mit Datumsangaben handelt? Egal? 3 Spalten und ein zusätzlicher Typindikator?

Am Ende des Tages: Gehst du davon aus, dass du die Flexibilität wirklich wirklich brauchst, dann gehe ruhig auf das dynamische Modell. Brauchst du sie nicht, oder brauchst du nur etwas Flexibilität, dann modelliere alles als "echte" Spalten, was dir jetzt bekannt ist, und sehe eine (zwei) Tabellen für zukünftige Erweiterungen vor.

MfG
Rouven

--
-------------------
sh:| fo:} ch:? rl:( br:& n4:{ ie:| mo:} va:) js:| de:] zu:| fl:( ss:) ls:& (SelfCode)
Konsens ist kein Beweis  --  John Naisbitt