ER-Modell Frage zu Tabelle

Ich glaube das wird zu kompliziert. Aus meiner Sicht ist es einfacher, wenn du eine Tabelle anlegst mit den Manakosten. Eigentlich brauchst du keine eigene Tabelle, du kannst die Kosten auch direkt in die Kartentabelle reinschreiben. Eine spezielle Karte kann ja nur eine Art von Kosten haben. (oder etwa nicht?)

Wenn du dann zwei blau und drei farblose suchst, musst du das eben über die Programmiersprache lösen. Das scheint mir einfacher, als JEGLICHE Möglichkeiten in die DB zu speichern. Alleine für die Kombination aus 3 Farblosen gibt es ja schon mehrere Tausend Möglichkeiten, so wie ich das sehe...

Weil, es gibt ja 5 Farben: blau, rot, grün, schwarz, farblos
Somit sind es 5^5 Kombinationen... ziemlich viel.
 
So wie ich dich verstanden habe, meinst du, dass ich bei jeder Karte in das Attribut Manakosten eine
3, 4, 6 reinschreibe, welches aussagt, wieviel die Karte kostet..?

Wenn man es so macht, hat man Keine Chance an die Daten ranzukommen, wieviel davon blau, grün, rot usw. sind. Denn selbst wenn man es Programmiertechnisch umsetzt,was man eh später u. a. machen muss, kann man das Probelm nicht lösen, weil man irgendwo abgespeicht haben muss, was man benötigt
 
@ Fragenfrager

(Zeige mir alle Karten, die zwei Blaue und 3 farblose Mana kosten)
SQL:
select kartenid 
from 
manakosten 
where 
blau='2' and farblos='3'

genau so möchte ich nachher Suchen können, wie setzte ich soetwas am besten in meinem ERM um?
 
Ah, ich verstehe. Gut, dann hast du folgende Möglichkeiten.

1) was ich bisher gemeint hatte
Tabelle: manakosten
kartenid - blau - rot - schwarz - grün - farblos
Insofern du 2 blau und 3 farblose suchst, machst du das einfach. Du weißt dann allerdings nicht, welche Kombinationsmöglichkeiten du für die Farblosen hast.

2) etwas, was du glaub ich gemeint hattest
Tabelle: manakosten
kartenid - blau - rot - schwarz - grün - farblos

Tabelle: farblose
farblosid - blau - rot - schwarz - grün - farblos

Relation:
Karten-Tabelle 1:1 Manakosten-Tabelle 1:n Farblos-Tabelle

Dann hast du z.B. bei 3 farblosen eine etwas kleinere Möglichkeitsverteilung... groß ist die aber immer noch. ;)
 
@u_w:
Wenn es nur für den Hausgebrauch ist und es Dir egal ist, wie das farblose Mana gezahlt wird, kannst Du dann eigentlich den Ansatz von Lime nehmen:
Pack alles in eine Tabelle:

ID (pk) (auto_increment) (int)
Kartenname (text)
k_farbe_weiss (bool)
k_farbe_schwarz (bool)
k_farbe_rot (bool)
k_farbe_blau (bool)
k_farbe_gruen (bool)
k_farbe_farblos (bool)
mkosten_weiss (int)
mkosten_schwarz (int)
mkosten_rot (int)
mkosten_blau (int)
mkosten_gruen (int)

Über
PHP:
SELECT 
 Kartenname 
FROM
 tabelle 
WHERE
 k_farbe_blau=TRUE
AND
 k_farbe_rot=TRUE
AND
 mkosten_blau="2"
kannst Du somit alle blau-roten Karten anzeigen lassen, die genau 2 blaue Mana kosten.
Ich persönlich würde die Tabelle noch um "Edition" und "Häufigkeit (rare,uncommon,common)" und Kartenart (Summon spell, Instant, Sorcery, Interrupt, Land, Artefakt) erweitern
 
Zuletzt bearbeitet:
Vielen Danke für Eure Hilfe,

ich weiß leider auch nicht, wie ich es anders lösen kann.

werde es dann warscheinlich so machen.

zu dem Tipp, dass du die Tabelle noch erweitern würdes, dass habe ich schon davor fertig gehabt, dabei sind zum glück keine Probleme aufgetreten.

Hier ist das ERM dazu: http://img546.imageshack.us/img546/6263/magickartendb.png
( Bei den Kartenname, hab ich den Datentyp VCHAR(50) verwendet, meint ihr, es wäre besser, wenn ich LongVARCHAR oder VARCHAR nehme? ich persönlich kenne den Typ nicht. Hört sich aber für mich so an als würde der Typ sich daran anpassen, wieviel Zeichen ich verwende?

Das gleiche Problem wie mit den Kosten(Fraben), gibt es Auch bei den Untertypen.

Eine Karte kann bis zu 4 Untertypen haben (soweit ich weiß, evtl. gehen sogar mehr)

Beispiel: http://magiccards.info/ddg/de/11.html (hier sind es 3 Untertypen, Mensch, Druide, Ritter)

aber im Normalfall gibt es 1-2 Untertypen pro Karte. Würdet ihr das dann auch so lösen, oder würde es hier evtl. eine schönere Lösung?

lg uw
 
Zuletzt bearbeitet:
Hallo zusammen,

ich hab meine DB jetzt um eueren Vorschlag erweitert

http://img716.imageshack.us/img716/6231/magickartendb2.png

Hat noch jemand eine Idee, wie man das mit den Untertypen der Karten lösen kann?

Eine Karte kann bis zu 4 Untertypen haben (soweit ich weiß, evtl. gehen sogar mehr)

Beispiel: http://magiccards.info/ddg/de/11.html (hier sind es 3 Untertypen - Mensch, Druide, Ritter)
Im Normalfall gibt es 1-2 Untertypen pro Karte.

Vielen Dank für eure Hilfe

lg uw
 
Wo ist das Problem?

Tabelle: Untertypen
ID -- Untertyp

Tabelle: Untertypen_Link
ID -- KartenID -- UntertypenID


Allerdings fehlt dir glaube ich noch was. Wir hatten ja vorgeschlagen, dass du für die Farblosen Manakarten eine eigene Tabelle machst...

Tabelle: Farblos_Manakosten
ID -- Anzahl_Farblose -- rot -- grün -- schwarz -- blau

Dort müssten eben alle Kombinationen rein, die möglich sind...

gruß
 
Hi lime,

eigt. gibt es kein Problem, ich bin mir nur etwas unsicher.

So wie du es vorgeschlagen hast: http://imageshack.us/photo/my-images/43/dbuntertyp.jpg/

Wenn ich jetzt aber alle Karten suche, die als Untertyp Mensch - Soldat sind, werden dann nicht alle doppelt aufgelistet?

Denn es wird ja unter id01 Karte+Untertyp und unter id02 gleiche karte+andereUntertyp aufgelistet?

lg uw

Ps: Das mit der Tabelle für FarblosesMana hab ich weggelassen, ist wie schon erwähnt, einfach über die Programmiersprache zu lösen.
 
Zurück