Alexander Foken: Zwei Reihen mit UND verknüpfen

Beitrag lesen

Moin Moin !

solange, bis Dir nette Menschen ein hübsches weißes Jäckchen verpassen und Dich in einen angenehm gepolsterten Raum verfrachten, während Du mit rollenden Augen "Self-Join! Self-Join! Muhuhuahaha!!!" schreist.

*augenroll* Muhuhuaauauauaa Self-Join, Self-Join dididdldldld
tüüüüüüüüüüü
gagaga nagn nagn
hehehehehehe sel sel seeeeeelfffjoooooiiiinnnn
*bonk*
*bonk*
säääääääälllllllflfffflflffl joiiihiiihihihihihihihi
*bonk*
Muiahaaahahaha sädl dädl döö
*gnargh*

Hmm, Du hast den Level der ersten Kaffeepause im MSSQL-Grundkurs erreicht. Nur weiter so.

SCNR!

Hintergrund ist folgender:
Ich habe eine Adressdatenbank mit einer variablen Anzahl an Spalten. Um diesem Umstand Rechnung zu tragen werde die Daten eben in der erwähnten Tabelle mit den Spalten vid, tid und wert gepspeichert. tid spezifiziert dabei die Eigenschaft, vid die Nummer des Eintrages und wert *trommelwirbel* den Wert.

Aaarg! Das ist nun wirklich Krampf.

Das DB-Layout hat einer entworfen, der's eigentlich können sollte (also nicht ich *g*). Außerdem müsste ich dann jedesmal, wenn ich eine neue Spalte hinzufüge / lösche mit 'nem ALTER TABLE an die Tabelle hin ...

Wie oft kommt das vor? Die Struktur einer Adressdatenbank sollte sich ja nun nicht gerade alle fünf Minuten ändern.

Außerdem solltest Du auch in MySQL an die Metadaten der Tabelle rankommen, sprich: Mit irgendeinem SELECT-Statement (oder einer MySQL-spezifischen Variante) solltest Du herausfinden können, welche Spalten Deine Tabelle hat, welche Typen und "Extras" (NOT NULL, PRIMARY KEY, INDEX, ...) sie haben. Wenn nicht, kannst Du diese Informationen in einer zweiten Tabelle halten.

Ich arbeite beruflich seit über drei Jahren an einem Programm, dessen Stärke variable Tabellen sind. Vier der Haupttabellen haben eine kundenspezifische Struktur, an die sich das Programm automatisch anpaßt, dank einer eigenen Hilfstabelle, in der alle Tabellen mit Spalten, (eigenen) Datentypen und Extras aufgeführt sind. ALTER TABLE macht das Programm notfalls selbst. Gelöscht werden überflüssige Spalten übrigens nicht, sie bleiben einfach ungenutzt stehen, werden aber nicht angezeigt.

Alexander

--
Nein, ich beantworte keine Fragen per eMail. Dafür ist das Forum da.
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".