hilfdirselbst.ch
Facebook Twitter gamper-media
Pozor
Beiträge: 892
8. Okt 2003, 11:09
Beitrag #1 von 5
Bewertung:
(935 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

SQL ENUM, Objekte bearbeiten?


hallo,

ich möchte gerne aus einer tabelle alle felder auslesen (nur ein eintrag) und ein objekt daraus erzeugen... soweitsogut. nun jedes feld enthält ein wert von 0 bis 3. ich möchte diese werte in strings abändern (z.B. 0 -> none etc).

Mein problem ist das folgende:

ich weiss nicht wie die spalten heissen, ok anfangs weiss ich wie die spalten heissen, doch es können und werden noch weitere spalten hinzukommen ev manche wegfallen.

gibts hierzu funktionen die in diese richtung gehen?

oder wie kann ich es erreichen, dass in der tabelle 0...3 steht und strings (wie oben) ausgegeben werden? Gibts da sowas wie enum oder ähnliches für die tabelle?


gruss Stefan

PS: kleiner Nachtrag: mit einem assoc array ist der zugriff einfacher -> ich möchte aber ein objekt am ende haben -> umwandeln von assoc array in objekt..?
(Dieser Beitrag wurde von Pozor am 8. Okt 2003, 11:26 geändert)
Top
 
X
Miro Dietiker
Beiträge: 699
8. Okt 2003, 11:46
Beitrag #2 von 5
Beitrag ID: #53804
Bewertung:
(935 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

SQL ENUM, Objekte bearbeiten?


Hi Pozor!

Die Idee einer ENUM-Spalte ist eben genau dass du da den Wert
Definierst, welcher ausgegeben werden soll!!
-> Erstelle in mysql eine Spalte vom typ ENUM

(Und mutieren tut man auch über dieselben definierten Werte)

Nun sollten also keine weiteren Funktionen nötig sein!

Wenn du nun diese Werte NOCHMALS übersetzen willst, kommt plötzlich
der Begriff "Übersetzungstabelle" ins Spiel, und es ist
offensichtlich, dass man eine Tabelle machen kann, welche 1 Spalte
mit Liste aller ENUM-Werte sein soll und eine andere Spalte mit den
übersetzten Grössen beinhaltet.

Mittels einem INNER JOIN auf diese Tabelle kann man diese Umsetzung
optimal implementieren!

[sql]
SELECT a.*, trans.translated_name
FROM a
INNER JOIN enum_translation trans
ON trans.enum_column=a.enum_column
[/sql]

Hoffe die Idee ist durchgekommen .)

GrEeZ: Miro Dietiker
als Antwort auf: [#53794]
(Dieser Beitrag wurde von Miro Dietiker am 8. Okt 2003, 11:49 geändert)
Top
 
Pozor
Beiträge: 892
8. Okt 2003, 13:01
Beitrag #3 von 5
Beitrag ID: #53818
Bewertung:
(935 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

SQL ENUM, Objekte bearbeiten?


hallo,

wenn ich eine spalte des typs enum habe, kann ich die nicht mit zahlen mutieren z.B.: 0 anstatt none oder 1 anstatt read etc?
geht dies nur über die vordefinierten enumwerte?

gruss Pozor

PS: merci für die schnelle antwort

PSS: bald chunt Diplomarbeit!!!
als Antwort auf: [#53794] Top
 
Miro Dietiker
Beiträge: 699
8. Okt 2003, 13:56
Beitrag #4 von 5
Beitrag ID: #53835
Bewertung:
(935 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

SQL ENUM, Objekte bearbeiten?


Re Pozor

Soweit ich weiss kann man ENUMs nur über die definierten Werte
mutieren.
Man definiert damit wirklich einen eigenen Datentyp (und hat auch
keinen Zugriff darauf, wie diese intern umgesetzt werden - woher
willste dann wissen welchen Zahlenwert die DB dem Inhalt zuweist?)

RE:PPS: Genau! Ich freu mich scho irrsinnig uf die zwe Mönet wo mer
NULL ziit für irgend öppis anders het und Nächtelang duremacht...

GrEeZ: Miro Dietiker
als Antwort auf: [#53794] Top
 
Pozor
Beiträge: 892
8. Okt 2003, 16:00
Beitrag #5 von 5
Beitrag ID: #53855
Bewertung:
(935 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

SQL ENUM, Objekte bearbeiten?


salle,

ich habe nur gedacht es gäbe sowas wie in c(++) mit enum (zahlenwert erlaubt (also erster enum string -> 0 2ter 1 etc)) oder irre ich mich da ganz...? ist nur so ne idee gewesen...

gruss Pozor

PS: was kann man über den benötigten speicherplatz aussagen? wiviel braucht enum? ist nicht wichtig für meine anwendung doch interessiern würde es mich schon...
als Antwort auf: [#53794]
(Dieser Beitrag wurde von Pozor am 8. Okt 2003, 16:01 geändert)
Top
 
X