phpbar.de logo

Mailinglisten-Archive

[php] key und arrays

[php] key und arrays

andreas amalesh kempf aka_(at)_bigfoot.de
Wed, 02 Jun 1999 09:40:34 GMT


On Tue, 1 Jun 1999 18:58:37 +0200 (MEST), Manuel Hossfeld wrote:

>3.)
>Was Du allerdings vermutlich machen willst/solltest, ist eine sog.
>"n:m"-Relation (in der Datenbank). (Sprich: Eine oder mehrere Deiner
>Adressen kann mit einer oder mehrerer WasAuchImmerInDerAnderenTabelleIst
>verknüpft sein. Denn so ist es letztendlich doch - oder hab ich das
>falsch verstanden?)
>Dazu brauchst Du dann eine zusätzliche "Hilfstabelle", über die diese
>Relation hergestellt wird.

Der einzig "saubere" weg in SQL.

Manchmal kann man aus bequemlichkeit in einem feld mehrere werte
durch komma getrennt eingeben, doch ist das nur bei kleinen
datenmodellen und relativ wenigen datensätzen empfehlenswert.

Beispiel: 
Auf meiner website www.goatrance.de/goafreak/ können sich leute
ein email über die aktuellen parties schicken lassen. Dazu können
diese sich gleichzeit entscheiden, für welche länder das gelten
soll. 

Um das korrekt in SQL abzubilden, müßte ich eigentlich eine
tabelle mit den email-adressen, eine mit den ländern und eine, die
die 1:m relation enthält, erstellen. Doch dazu war ich etwas zu
bequem. Deshalb habe ich mich entschieden, in der email-tabelle
ein länderfeld einzufügen, welches alle länder mit leerzeichen
getrennt enthält.

Da eine neue party immer in einem land stattfindet, mache ich dann
ein einfaches 
	select * from emails where country like '%germany%' 
und schon habe ich alles, was ich will.

Vorteil:
- Schneller kodiert

Nachteile:
- Die ländernamen dürfen sich nicht ändern
- Es kann nicht so einfach ein land gelöscht werden
- langsamer (was bei <2000 records aber kaum ins gewicht fällt)

ciao

amalesh
-- 
Keep Agent alive: http://www.living-source.com/agent/
LS at CCC-Camp  : http://www.living-source.com/ccc/
German Goatrance: http://www.goatrance.de
Contact         : ak_(at)_living-source.com ~ icq:963380


php::bar PHP Wiki   -   Listenarchive