PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Arrays in SQL....



Lin728
20-11-2003, 06:41
Gibt eine standard-methode arrays in SQL anzulegen? Alles was ich gefunden habe, war Datenbankspezifisch, ich würde aber was brauchen, was überall läuft.

Ich denke einfach ganz viele Spalten anzulegen, um ein Array zu simulieren, ist keine gute Idee wenns auf Effizient ankommt.....

Christoph
20-11-2003, 08:42
In relationalen Datenbanken sind Arrays (=Mengenwertige Attribute oder zusammengestzte Attribute) per Definition ausgeschlossen.

In Objektrelationalen Datenabnaken (wie z.B. PostgreSQL) sind sie möglich. Dass Sie den Zugriff beshcleunigen, wie Du glaubst, halte ich aber für zumindest fragwürdig.

Tatsächlich sind Arrays aber unnötig. Wie man mengenwertige Attribute im rein relationalen Modell realisiert steht in jedem Datenbank Buch (Kapitel "Normalisierung/1. Normalform").

Siehe z.B. http://lionel.kr.hs-niederrhein.de/~dalitz/data/lehre/DBS/Kap2.1-3-4up.ps.gz
Kapitel 2.2.3 "Normalisierung".

elrond
20-11-2003, 08:51
Gibt eine standard-methode arrays in SQL anzulegen?
ich habe an der stelle nichts kennengelernt, was dem SQL-Standard entspricht....


wenn du einfach nur daten "aufheben" willst, dh. nicht wirklich array-funktionen in der db benutzen wills bleibt nur der weg das array in einen string umzuwandeln und entsprechend zu speichern

In php existiert dafür die funktion serialize() das diese aufgabe auch für ein array übernimmt. mit unserialize() wird wieder ein array draus. Ich benutze das manchmal..

Lin728
20-11-2003, 11:01
@Christoph: Ich weiß, dass man normalerweise sowas nicht macht, weil sich dann die Relation nicht in der 1.NF befindet. Aber in meinem Fall macht das echt nix. Im muss ~700 Byte-Werte speichern, und da ziemlich viele Reihen davon.
Wenn man dann 2mio Reihen davon rechnet, benötigen die Spaltendefinitionen mehr Platz als die paar Bytes. Manchmal muss man Kompromisse eingehen :-(

@elrond: So einfach gehts in Java nicht :-(

Mal sehen, vieleicht tut char(x) genau das was ich suche, also eine Zeichenkette ...

elrond
20-11-2003, 13:06
@elrond: So einfach gehts in Java nicht :-(

ein schlauer bursche wie Du schreibt sich doch einfach eine solche funktion...;)

Lin728
20-11-2003, 14:11
Danke für die Tipps un Anregungen!