hi!
ich bin gerade dabei, eine Datenbank einzurichten, die einfach
Adressen von irgendwelchen Leuten speichern soll. Mein erster
Gedanke war ja eine Tabelle mit je einer Spalte für jedes
gewünschte Attribut. Also eine Spalte „Name“, eine „Vorname“,
usw. So ist wohl der Standart für solche Sachen, oder?
genau so ist es
Aber wie wäre es denn, wenn ich lediglich eine dreispaltige
Tabelle anlege, die die Spalten „ID“ (eindeutige ID),
„Attribute“ (z.B. Name) und „Value“ (z.B. Huber) hat? Wäre
doch viel flexibler. Wenn jetzt plötzlich noch eine
Mail-Adresse zu den Adressen hinzukommen soll, brauch ich
keinerlei Datenbankänderungen. Ok, die Abfrage wird wohl etwas
komplexer.
Wie seht ihr das? Was ist das beste Konzept?
vergiß es! die db-verwaltung wird zwar wesentlich einfacher (hast ja nur mehr eine tabelle), allerdings der zugriff (egal wie) wird erheblicher komplexer (und natürlich auch langsamer) und der hauptteil wird wohl eher an der abfrage und wartung von den adressen liegen - und dann wirst du dich selber verfluchen … du versuchst eine eigene logische datenbank zu bauen, deren zugriffe programatisch gesteuert werden müssen -> hölle!
die meiste zeit bei der erstellung der datenbank sollte man eigentlich beim entwurf vergeuden - genau wie du es ansprichst: welche werte brauche ich? welche werte könnte ich brauchen? (ach was haben wir damals noch gelacht, als jemand meinte, wir könnten ja ein feld „mobil-telefon-nummer“ oder „e-mail-adresse“ dazuhängen) wie löse ich nun dieses datenknäuel auf? plz und ort in eine oder in zwei tabellen, straße extra oder wird es egal sein, wenn’s mal „sängergasse“ und mal „saengerg.“ heißt?
aus leidvoller erfahrung kann ich dir nur sagen, man kann ein datenmodell auch zu-tode-auflösen; dies ist aber nur ratsam, wenn du die db modellierst und nicht damit arbeiten mußt und nix mehr damit zu tun haben wirst
grüße
tomh