Freunde,Implementieren einer C/C++ - Stil Union als eine Spalte in MySQL
Ich habe eine seltsame Notwendigkeit und kann mich nicht durch das Problem denken. Das große und mächtige Google ist aufgrund des Keyword-Recyclings (wie Sie sehen werden) wenig hilfreich. Kannst du helfen?
Was ich tun möchte, ist das Speichern von Daten mehrerer Arten in einer einzigen Spalte in MySQL.
Dies ist die Datenbank, die einer C-Union entspricht (und wenn Sie nach MySQL und Union suchen, erhalten Sie offensichtlich eine ganze Menge Sachen über das UNION-Schlüsselwort in SQL).
[Konstruierter und vereinfachter Fall folgt] Also, lassen Sie uns sagen, dass wir Leute haben - die Namen haben - und STORMTROOPERS - die TK-Nummern haben. Sie können nicht sowohl einen Namen als auch eine TK-Nummer haben. Du bist entweder BOB SMITH -oder- TK409.
In CI könnte dies als eine Union auszudrücken, etwa so:
union {
char * name;
int tkNo;
} EmperialPersonnelRecord;
Dies macht es so, dass ich entweder bin einen Zeiger auf einen char-Array oder eine ID in der Art EmperialPersonnelRecord speichern, aber nicht beide.
Ich bin auf der Suche nach einem MySQL-Äquivalent auf einer Spalte. Meine Spalte würde entweder ein int, double oder varchar (255) (oder eine andere Kombination) speichern. Würde aber nur den Platz des größten Elements einnehmen.
Ist das möglich?
(natürlich alles möglich ist genügend Zeit, Geld und will - ich meine, ist es möglich, wenn ich bin arm, faul und auf einer Frist ... Auch bekannt als „out of the box“)
ich mit einer Art und Weise beantwortet, es zu tun, etwas gegossen und hängen aber können Sie bitte erarbeiten Warum willst/musst du? Es scheint, dass die naheliegende Lösung, alle separaten Attribute in separaten NULL-fähigen Spalten zu speichern, gut funktioniert. – DVK