Hallo Ihr!
Meine Frage bezieht sich eigentlich weniger auf Java, sondern auf DB-Design. Aber letztlich will ich das ganze mit JPA mappen. Deswegen versuche ich es mal:
Und zwar habe ich eine Tabelle Kommentare, in der Benutzerkommentare z.B. zu Bildern gespeichert werden. Künftig sollen auch Kommentare zu Videos gespeichert werden können. Weil die Daten eines Kommentars für ein Video die selben wie bei einem Bild sind, würde ich gerne die selbe (!) Tabelle verwenden. Nun kann ich aber für die Beziehung zum Video natürlich nicht die Spalte picture_id verwenden.
Ich sehe eigentlich folgende Möglichkeiten:
1. Zusätzlich zur Spalte picture_id gibt es eine Spalte video_id, um die Beziehung zum Video herzustellen. Dann wäre aber jeweils eine davon null. Und überhaupt ist das blöd.
2. pictures und videos "erben" von einer gemeinsamen Tabelle und der Primary Key davon wird im Kommentar eingetragen. Das erscheint mir etwas übertrieben.
3. Zwischen pictures und comments sowie zwischen videos und comments gibt es jeweils eine Relationstabelle pictures_commens_rel und videos_comments_rel: Finde ich auch etwas aufwendig.
4. Von comments erbt album_comments und video_comments und speichert den jeweiligen Fremdschlüssel. Das ist im Ergebnis eigentlich wie Variante 3.
Welche davon ist die Beste oder gibt es noch was viel einfacheres? Oder ist meine Ansatz sowieso völlig falsch. Ich drehe mich hier im Kreis.
Titus
Meine Frage bezieht sich eigentlich weniger auf Java, sondern auf DB-Design. Aber letztlich will ich das ganze mit JPA mappen. Deswegen versuche ich es mal:
Und zwar habe ich eine Tabelle Kommentare, in der Benutzerkommentare z.B. zu Bildern gespeichert werden. Künftig sollen auch Kommentare zu Videos gespeichert werden können. Weil die Daten eines Kommentars für ein Video die selben wie bei einem Bild sind, würde ich gerne die selbe (!) Tabelle verwenden. Nun kann ich aber für die Beziehung zum Video natürlich nicht die Spalte picture_id verwenden.
Ich sehe eigentlich folgende Möglichkeiten:
1. Zusätzlich zur Spalte picture_id gibt es eine Spalte video_id, um die Beziehung zum Video herzustellen. Dann wäre aber jeweils eine davon null. Und überhaupt ist das blöd.
2. pictures und videos "erben" von einer gemeinsamen Tabelle und der Primary Key davon wird im Kommentar eingetragen. Das erscheint mir etwas übertrieben.
3. Zwischen pictures und comments sowie zwischen videos und comments gibt es jeweils eine Relationstabelle pictures_commens_rel und videos_comments_rel: Finde ich auch etwas aufwendig.
4. Von comments erbt album_comments und video_comments und speichert den jeweiligen Fremdschlüssel. Das ist im Ergebnis eigentlich wie Variante 3.
Welche davon ist die Beste oder gibt es noch was viel einfacheres? Oder ist meine Ansatz sowieso völlig falsch. Ich drehe mich hier im Kreis.
Titus