Lodorvonhal Geschrieben 12. Februar 2011 Teilen Geschrieben 12. Februar 2011 Hallo. Ich bin neu hier und nach endloser Suche im Netz wende ich mich an Euch. Bin momentan dabei ein Spiel zu entwerfen (mit nem Kumpel) und erstelle gerade meine Datenbank. Ich arbeite mit JavaSlick2D und H2 Database Engine. Ich habe eine tabelle Spieler mit SpielerID tabelle Gesundheitszustand mit GesundheitID jeder der beiden ID ist für sich in seiner Tabelle ein Primary Key. So. nun habe ich eine Zuordnungstabelle zwischen den beiden Tabellen tabelle SpielerhatGesundheit mit SpielerID GesundheitID beide logischerweise als foreign Key der jeweiligen tabelle sonst ist nix in dieser tabelle Nun zu meiner Frage. Ist es sinnvoll beide als Primary key zu machen oder keinen? Beim Erstellen der tabelle (oder auch beim ändern) kann ich keine 2 Primärschlüssel anlegen. weis zum nicht wie. Weis jemand rat ob ich überhaupt ein primärschlüssel brauche oder brauche ich in dem fall keinen. Danke schonmal für die Mühe. MFG Patrick Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 13. Februar 2011 Teilen Geschrieben 13. Februar 2011 nun habe ich eine Zuordnungstabelle zwischen den beiden TabellenZuordnungstabelle heißt, du siehst da eine n:m-Beziehung? Ein Spieler kann also mehrere Gesundheitszustände gleichzeitig haben? Sicher, dass da nicht schon beim Modellieren etwas schiefgegangen ist? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Lodorvonhal Geschrieben 13. Februar 2011 Autor Teilen Geschrieben 13. Februar 2011 Hi Klotzkopp, danke für deine Antwort. Oh gut, da habe ich vergessen noch einiges zu erwähnen. Gesundheitszustand ist nicht alleine die HP sondern darunter ist zu verstehen das es verschiedene Effekt geben kann. zb. Verzauberung Verfluchung ect. Der Gesundheitzustand holt sich die Infos aus einer tabelle mit dem namen Effekt. Also ist also tatsächlich eine n:m bezihung auch wenn blöd ausschaut (ist blöd forumuliert ^^) Abgesehen vom dem Blöden Beispiel habe ich noch andere Zuordungstabellen mit n:m und wollte halt nur fragen wie ich das mit den Key's so handhaben sollte. habe mittlerweile meine Fehler gefunden warum ich keine 2 PK anlegen konnte. Simpler Sytaxfehler XD. egal Also seh ich das dann richtig, das ich in meiner n:m zuordungstabelle jeweils 2 FK und einen zusammengesetzten PK (also 2 PK) haben kann? und das ganzen dann auch noch funst? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 13. Februar 2011 Teilen Geschrieben 13. Februar 2011 Gesundheitszustand ist nicht alleine die HP sondern darunter ist zu verstehen das es verschiedene Effekt geben kann. zb. Verzauberung Verfluchung ect. Dann ist das Ordnung (bis auf die Namensgebung ) Also seh ich das dann richtig, das ich in meiner n:m zuordungstabelle jeweils 2 FK und einen zusammengesetzten PK (also 2 PK) haben kann?Wenn die PK der beiden Elterntabellen jeweils nur aus einem Feld bestehen, ja. Ansonsten natürlich mehr. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Lodorvonhal Geschrieben 13. Februar 2011 Autor Teilen Geschrieben 13. Februar 2011 Ok vielen dank für die mühe nun klappt alles, melde mich wenn unser projekt fertig ist evtl hat ja jemand mal lust das probe zu zocken. ^^ danke nochmal. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dr.dimitri Geschrieben 14. Februar 2011 Teilen Geschrieben 14. Februar 2011 Nun zu meiner Frage. Ist es sinnvoll beide als Primary key zu machen oder keinen? Leg eine eigene Spalte an, die dann der Pk wird. Diese Spalte befüllst Du z.B. mit einem Autowert. Beim Erstellen der tabelle (oder auch beim ändern) kann ich keine 2 Primärschlüssel anlegen. weis zum nicht wie. Eine Tabelle hat immer nur einen PK. Ein PK muss immer ein rein technisches Feld ohne jeglichen fachlichen Bezug sein, ansonsten kannst in größere Probleme laufen. Du kannst einen PK aus mehreren Feldern zusammensetzen, allerdings deutet das wiederum meistens auf ein Tabellendesignproblem hin. Grundregel: Falls ein PK benötigt wird, dann ein eigenes Feld dafür anlegen und nicht andere Felder dafür missbrauchen. Dim Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.