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
[1] http://www.postgresql.org/docs/9.3/static/arrays.html
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Lug-dd maillist - [email protected] https://ssl.schlittermann.de/mailman/listinfo/lug-dd
