Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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

nun habe ich eine Zuordnungstabelle zwischen den beiden Tabellen
Zuordnungstabelle 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?

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?

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.

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.

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

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.