Am 23.07.2014 um 23:32 schrieb Heiko Schlittermann:
Hallo,
ich bin gerade irgendwie nicht in der Lage, in PostgreSQL etwa folgendes zu haben:
Ein Objekt kann beschrieben werden durch eine Reihe von Attributen Name ist Text Size ist ein Integer Colors ist ein Set von Werten aus dem Bereich 'red', 'green', 'blue' Also: Name|Sz.|Colors -------+---+-------- Foo|12 |red Bar|10 |red,blue Baz|7 |green Baf|42 |green,blue CREATE TYPE colors AS ENUM ('red', 'green', 'blue'); -- so stelle ich mir das vor: CREATE TYPE colors AS SET ('red', 'green', 'blue'); Aber so geht das nicht. Wie dann? MySQL kann doch Mengen, oder?
Konnte ich mich verständlich ausdrücken?
Du kannst eine Spalte als Array definieren[1], was so ungefähr das ist, was Du Dir vorstellst.
Man könnte es aber auch so machen -- so wie man es auf der Schule lernt ;)
CREATE TABLE item ( id serial primary key, name varchar(100) );
CREATE TYPE colorz AS ENUM ('red', 'green');
CREATE TABLE item_options( id serial primary key, item_id integer references item, size integer, color colorz );
Damit sparst Du Dir die Array-Spezifika, trittst Du Dir aber eine Menge an Joins ein.
Ist am Ende halt eine Frage, was Du damit machen willst und wie die Querys aussehen sollen.
Gruß Frank