#1 10. Mai 2010 Zuletzt von einem Moderator bearbeitet: 15. April 2017 Datentypen bei PostgreSQL Hi. wir hatten als aufgabe auf einen datentyp in phpPgAdmin ( benutzt PostgreSQL) zu erstellen. Dieser Datentyp soll nur die Kürzel BCS, BCS-TZ und BIS in einer Spalte Kuerzel in der Tabelle Studiengang erlauben. habe jetzt einfach einen aufzählenden datentyp erstellt (ENUM). allerdings war diese lösung falsch. Nun weiß ich nicht weiter. wie kann man einen eigenen datentyp mit oben genannten anforderungen erstellen? So sieht diese umgebung aus: Spoiler {img-src: //img63.imageshack.us/img63/7633/dbss.jpg} Hier nochmal die komplette Aufgabe Spoiler Auf Basis der in Aufgabe 1 definierten Datenbank-Struktur soll für das „public“-Schema ein neuer Datentyp definiert werden, der den Wertebereich der Spalte „Kürzel“ aus der Tabelle „Studiengang“ besser beschreibt. Der neue Datentyp soll „Studiengang_Kürzel_Typ“ heißen und vorgeben, dass die zugehörige Spalte nur die Werte „BIS“, „BCS“ und „BCS-TZ“ erlaubt. Nachdem sie den Datentyp definiert haben, sollten sie die Tabelle „Studiengang“ entsprechend anpassen. Ist die ohne Weiteres möglich? Wenn nein, welche Probleme treten auf (bzw. können auftreten) und wie lassen sich diese lösen? Hoffe auf schnelle Hilfe Flu + Multi-Zitat Zitieren
#3 16. Mai 2010 AW: Datentypen bei PostgreSQL Ich hab diesen Thread schon mal gelesen und ehrlich gesagt fällt mir auch ausser eines ENUM Datentyps keine andere Lösung ein, warum ist diese Lösung falsch, hast du irgentwelche andere Ansätze vielleicht? Mfg Rushh0ur + Multi-Zitat Zitieren
#4 17. Mai 2010 AW: Datentypen bei PostgreSQL der ENUM ansatz ist falsch, da er ein auflistender typ ist. der der reihe nach werte zuordnet, d.h. wenn der datentyp den inhalt 1,2,3 hat, dann wird erst die 1 einem objekt zu geordnet, dann die 2 und dann die 3. aber bei uns soll das so sein, dass man die werte auch ungeordnet zuteilen kann. z.b. dem einen die 1, dem anderen die 3,... nen anderen ansatz hab ich bisher nicht gefunden. hoffe also immernoch auf hilfe + Multi-Zitat Zitieren
#6 26. Mai 2010 AW: Datentypen bei PostgreSQL das ist falsch. eine enum beschränkt nur den wertebereich auf bestimmte werte. die reihenfolge ist egal. wieso machst du nicht eine 2 tabelle und fügst da eine id und dann einen erlaubten wert ein. z.b. id | wert 1 | BCS 2 | BCS-TZ 3 | BIS die spalte kürzel muss dann ein fremdschlüssel dieser tabelle sein. ist zwar umständlich aber ansonsten kenne ich nur die möglichkeit über enums. ansonsten weiß ich auch keine andere möglichkeit. es sei den es gibt eine variante nur für dein dbms. + Multi-Zitat Zitieren