Forenindex » Programmierung/Entwicklung » PHP und MySQL » SQL ENUM, Objekte bearbeiten?

SQL ENUM, Objekte bearbeiten?

Pozor
Beiträge gesamt: 892

8. Okt 2003, 11:09
Bewertung:

gelesen: 1299

Beitrag als Lesezeichen
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)

SQL ENUM, Objekte bearbeiten?

Miro Dietiker
Beiträge gesamt: 699

8. Okt 2003, 11:46
Bewertung:

gelesen: 1299

Beitrag als Lesezeichen
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

(Dieser Beitrag wurde von Miro Dietiker am 8. Okt 2003, 11:49 geändert)

SQL ENUM, Objekte bearbeiten?

Pozor
Beiträge gesamt: 892

8. Okt 2003, 13:01
Bewertung:

gelesen: 1299

Beitrag als Lesezeichen
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!!!

SQL ENUM, Objekte bearbeiten?

Miro Dietiker
Beiträge gesamt: 699

8. Okt 2003, 13:56
Bewertung:

gelesen: 1299

Beitrag als Lesezeichen
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

SQL ENUM, Objekte bearbeiten?

Pozor
Beiträge gesamt: 892

8. Okt 2003, 16:00
Bewertung:

gelesen: 1299

Beitrag als Lesezeichen
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...

(Dieser Beitrag wurde von Pozor am 8. Okt 2003, 16:01 geändert)