para_noid
hirnrissig
Folgende Tabellen:
(weiß auch nicht wieso die ganzen Keys beim Export nicht mitkommen, sie sind aber definitiv vorhanden)
Tabellen object & equipment stehen in is-a-Beziehung zur Tabelle item. Das eine sind sonstige Gegenstände (meinetwegen Verband), das andere ist Ausrüstung (Lederstiefel). An sich handelt es sich ja hierbei jeweils um 1:1-Beziehungen, ein item ist entweder ein Ausrüstungsgegenstand oder ein sonstiger Gegenstand. Demzufolge müsste der Primary Key von den beiden Kindtabellen dem der Elterntabelle entsprechen.
Die Gegenstände, die ein Spieler gesammelt hat, stehen in character_item.
Was ich mich jetzt frage: wie finde ich bei dieser Konstellation ausgehend von der Tabelle character_item heraus, um welche Spezialisierung es sich handelt? Ich möchte zum Beispiel alle Items des Spielers und ihre relevanten Informationen auflisten - bei Ausrüstungsgegenständen eben auch das Material. Zu beiden Kindtabellen werden noch Zwischentabellen folgen, die dauerhafte (Ausrüstung) oder zeitlich begrenzte (sonstige) Steigerungen von Spielerfähigkeiten beinhalten.
Ich seh hier momentan nur zwei Möglichkeiten:
Beide Varianten find ich ziemlich hässlich. Außerdem beschleicht mich das dumpfe Gefühl, in der Theorie irgendetwas fürchterlich missverstanden zu haben oder einfach grundlos gegen ne Wand zu rennen. Hat jemand Vorschläge zur Umsetzung?
SQL:
CREATE TABLE character_item (
id integer NOT NULL,
characterid integer NOT NULL,
itemid integer NOT NULL,
amount smallint DEFAULT 1 NOT NULL
);
CREATE TABLE item (
id integer NOT NULL,
name character varying(125) NOT NULL,
description text NOT NULL,
price integer NOT NULL
);
CREATE TABLE object (
id integer NOT NULL
);
CREATE TABLE equipment (
id integer NOT NULL,
materialid integer
);
Tabellen object & equipment stehen in is-a-Beziehung zur Tabelle item. Das eine sind sonstige Gegenstände (meinetwegen Verband), das andere ist Ausrüstung (Lederstiefel). An sich handelt es sich ja hierbei jeweils um 1:1-Beziehungen, ein item ist entweder ein Ausrüstungsgegenstand oder ein sonstiger Gegenstand. Demzufolge müsste der Primary Key von den beiden Kindtabellen dem der Elterntabelle entsprechen.
Die Gegenstände, die ein Spieler gesammelt hat, stehen in character_item.
Was ich mich jetzt frage: wie finde ich bei dieser Konstellation ausgehend von der Tabelle character_item heraus, um welche Spezialisierung es sich handelt? Ich möchte zum Beispiel alle Items des Spielers und ihre relevanten Informationen auflisten - bei Ausrüstungsgegenständen eben auch das Material. Zu beiden Kindtabellen werden noch Zwischentabellen folgen, die dauerhafte (Ausrüstung) oder zeitlich begrenzte (sonstige) Steigerungen von Spielerfähigkeiten beinhalten.
Ich seh hier momentan nur zwei Möglichkeiten:
- ich selektiere character_skill.itemid -> item.id -> equipment.id und wenn ich kein Ergebnis bekomme object.id, also frei nach trial&error
- ich erweitere Tabelle item um die Spalte typ(enum) und je nachdem, welcher Wert da drin steht, selektiere ich equipment oder object
Beide Varianten find ich ziemlich hässlich. Außerdem beschleicht mich das dumpfe Gefühl, in der Theorie irgendetwas fürchterlich missverstanden zu haben oder einfach grundlos gegen ne Wand zu rennen. Hat jemand Vorschläge zur Umsetzung?
Zuletzt bearbeitet von einem Moderator: