Hallo,
ich stehe gerade vor dem Problem der Abspeicherung von Daten. Und zwar geht es darum, dass Personen mit anderen Personen befreundet sind. Dies ist eine n:m Beziehung und wird in einer weiteren Tabelle ausgelagert.
Tabelle Person schaut ca. so aus:
CREATE TABLE person(
id integer PRIMARY KEY,
name varchar(40) NOT NULL,
...
);
Tabelle Freundschaft schaut ca so aus:
CREATE TABLE freundschaft(
f1id integer references person(id),
f2id integer references person(id),
status integer NOT NULL,
PRIMARY KEY (f1id, f2id)
);
Wenn Person1 nun mit Person2 befreundet ist, so gilt die Freundschaft natürlich auch andersherum.
Ist es nun sinnvoll die die datn doppelt abzuspeichern oder sollte man lieber bei allen selects mit union arbeiten?
Bei Änderungen der Freundschaft müsste man natürlich auch immer auf beide werte überprüfen.
Also würdet ihr doppelt abspeichern und die datensätze doppelt verwalten oder lieber einmal abspeichern, dafür dann aber komplizierte statements?
Als Beispiel für einfache Speicherung:
wenn die Freundschaft |1|2|0| besteht und jemand versucht |2|1|0| zu speichern, gibt das keine Duplicate Key Exception, so müsste man vorher überprüfen ob die die Beziehung mit vertauschten Werten bereits exisistiert.
Vielen Dank!
ich stehe gerade vor dem Problem der Abspeicherung von Daten. Und zwar geht es darum, dass Personen mit anderen Personen befreundet sind. Dies ist eine n:m Beziehung und wird in einer weiteren Tabelle ausgelagert.
Tabelle Person schaut ca. so aus:
CREATE TABLE person(
id integer PRIMARY KEY,
name varchar(40) NOT NULL,
...
);
Tabelle Freundschaft schaut ca so aus:
CREATE TABLE freundschaft(
f1id integer references person(id),
f2id integer references person(id),
status integer NOT NULL,
PRIMARY KEY (f1id, f2id)
);
Wenn Person1 nun mit Person2 befreundet ist, so gilt die Freundschaft natürlich auch andersherum.
Ist es nun sinnvoll die die datn doppelt abzuspeichern oder sollte man lieber bei allen selects mit union arbeiten?
Bei Änderungen der Freundschaft müsste man natürlich auch immer auf beide werte überprüfen.
Also würdet ihr doppelt abspeichern und die datensätze doppelt verwalten oder lieber einmal abspeichern, dafür dann aber komplizierte statements?
Als Beispiel für einfache Speicherung:
wenn die Freundschaft |1|2|0| besteht und jemand versucht |2|1|0| zu speichern, gibt das keine Duplicate Key Exception, so müsste man vorher überprüfen ob die die Beziehung mit vertauschten Werten bereits exisistiert.
Vielen Dank!