Frage zu Datenmodellierung

internet

Top Contributor
Hallo zusammen,

ich bin wirklich am verzweifeln und würde mich sehr über Hilfe freuen.
Also folgendes:

Ich habe 3 Tabellen.

a) Warengruppe(ID, Name, Beschreibung)
b) Artikel (ID, Name, Warengruppe_FK)
c) ArtikelVerliehen(ID, von, bis, artikel_fk)

So habe ich die Beziehung aufgebaut: warengruppe 1....n artikel 1.....n ArtikelVerliehen

Nun möchte ich aber eine Liste erstellen, die mir mir folgendes ausgibt:

Warengruppe1
- artikel.name | artikel.artikelVerliehen.von | artikel.artikelVerliehen.bis

Warengruppe2
- artikel.name | artikel.artikelVerliehen.von | artikel.artikelVerliehen.bis

Mein Problem ist nun, dass ArtikelVerliehen in einer Liste von Artikel und Artikel wiederum in einer Liste von Warengruppe ist, also sprich 2 Listen.

Ich habe mir schon gedacht auch einen Schlüssel von Warengruppe in ArtikelVerliehen zu machen, aber das macht kein Sinn (Stichwort Redundanz). Denn was ist wenn ein Artikel einer anderen Warengruppe zugeordnet wird, dann muss das Update auch in ArtikelVerliehen geschen.

Kann mir bitte jemand weiterhelfen, wie ich das lösen kann?
Freue mich über jede Hilfe:bahnhof:
 
Zuletzt bearbeitet:
Worauf genau zielt deine Frage ab? Willst du Hilfe dabei eine passende SQL-Abfrage zu formulieren? Dann solltest du mindestens erwähnen, welche DB du verwendest.. Oder hast du die Daten schon in deiner Java-Application vorliegen (über Standard-JPA) und suchst nur eine Möglichkeit die gewünschten Daten auszugeben?
Oder doch was ganz anderes?
 
Die Daten liegen schon in der Java-Application vor (JPA) vor.
Ja, nun suche ich eine Möglichkeit, wie ich dies ausgeben kann.

Also quasi so:
 
Ich sehe das Problem nicht wirklich. Du musst doch nur über alle drei Listen iterieren?

Java:
for(Warengruppe w : wList) {
   ... // Baue hier die "äußere Tabelle" auf..
   for(Artikel a : w.aList) {
      ...
      for(ArtikelVerliehen av : a.avList) {
         ... // Baue hier die "innere Tabelle" auf
      }
   }
}
 
Zuletzt bearbeitet:

Neue Themen


Zurück
Oben