Tabellendesign

Status
Nicht offen für weitere Antworten.

MQue

Top Contributor
hallo,

ich hätte eine Frage zum Datenbankdesign und zwar habe ich 3 Tabellen, diese 3 Tabellen haben eine Kardinalität wie unten dargestellt.
Wenn man eine M:N Beziehung hat, dann benötigt man ja eine Zwischentabelle (2 Foreign keys),
Jetzt hab ich aber 3 Tabellen mit einer M:N Tabelle,
wie kann da die ZwischenTabelle, die Tab1-> Tab3 und Tab1 -> Tab2 verbinden, aussehen (3 Foreign key und eine künstlichen Primary key - könnte man das machen oder wie macht man das am Besten?)

vielen Dank,

schönen Abend noch,



Diagramm1.jpg
 
G

Gelöschtes Mitglied 5909

Gast
ich würde 2 join tables machen

tab1_id tab2_id und tab1_id tab3_id

da brauchst du auch keinen künstlichen pk
 

MQue

Top Contributor
raiL hat gesagt.:
ich würde 2 join tables machen

tab1_id tab2_id und tab1_id tab3_id

da brauchst du auch keinen künstlichen pk


Morgen,

z.B.: sind in Tab1 Messen eingetragen, in Tab2 Jornalisten und in Tab3 Zeitungen und die Zwischentabelle soll "registriert bei" heißen und es können für eine Messe mehrere Jornalisten registriert werden, ein Jornalist kann sich für mehrere Messen registrieren und für eine Messe könne sich mehrere Zeitungen registrieren und eine Zeitung kann sich bei mehrere Messen registrieren,

das ist meiner Einschätzung nach ein eher schlechtes Design, wenn ich 2 registrieren für Tabellen hätte, oder wäre das OK?

lg
 

MQue

Top Contributor
Also eigentlich sollen die Beziehungen dann so aussehen, aber ich frage mich, ob das ein gutes Design ist und ob die Abfragen dann auch einfach werden bzw. ob die Zwischentabelle so überhaupt realisiertbar ist,

Diagramm2.jpg
 
M

maki

Gast
>> das ist meiner Einschätzung nach ein eher schlechtes Design, wenn ich 2 registrieren für Tabellen hätte, oder wäre das OK?

Ja, schlechtes Design.

Halte dich an den Rat von raiL.

EIne Tabelle Messe (singular ist die bessere Wahl für Tabellennamen), eine Tabelle Journalist und eine Tabelle Zeitung, die Tabellen Messe und Journaliste haben eine Zischentabelle, genauso wie die Tabellen Messe und Zeitung.
 

MQue

Top Contributor
maki hat gesagt.:
>>
die Tabellen Messe und Journaliste haben eine Zischentabelle, genauso wie die Tabellen Messe und Zeitung.

d.h. dann also, dass ich 2 Tabellen "registriert bei (1 und 2)" habe, kann man das dann so lassen oder ist das auch schlechtes Design?

Danke,
 
M

maki

Gast
Sammle erstmal die Nomen, geben meist gute Tabellen ab.
"registriert bei" wäre mir viel zu allgemein.
 

MQue

Top Contributor
maki hat gesagt.:
Sammle erstmal die Nomen, geben meist gute Tabellen ab.
"registriert bei" wäre mir viel zu allgemein.

Habe ich gemacht:

Jornalisten könne sich bei einer oder mehreren Messen registrieren
Auch Medien können sich, ohne einen Jornalisten vorort zu haben, bei mehreren Messen registrieren

keine Ahnung wie ich das spezieller nennen kann aber du willst wahrscheinlich auf das hinaus, dass ich 2 Zwischentabellen mit verschiedenen Namen habe aber ich seh momentan keine Möglichkeit, wie ich diese nennen soll,

Hättest Du da noch einen Tipp??
Danke
 
M

maki

Gast
Untersuche die Beziehungen zwischen den Nomen und du erfährst etwas über die Beziehungen der Tabellen ;)

2 Tabellen mit demselben Namen ist quatsch.
Eine Tabelle um 3 andere Tabellen zu verknüpfen ist auch quatsch(zumindest hier).

Müssen Zeitungen über Journalisten bescheid wissen?
 
G

Guest

Gast
maki hat gesagt.:
Müssen Zeitungen über Journalisten bescheid wissen?

Ja, ein Jornalist kann bei einer Zeitung arbeiten und bei einer Zeitung können mehrere Jornalisten arbeiten,
Ich hab leider auch nicht mehr informationen als diese zwei Sätze:

Jornalisten könne sich bei einer oder mehreren Messen registrieren
Auch Medien können sich, ohne einen Jornalisten vorort zu haben, bei einer oder mehreren Messen registrieren


Was könnte man da machen um ein gutes Design zu erreichen?
 
M

maki

Gast
Ich hab leider auch nicht mehr informationen als diese zwei Sätze:

Jornalisten könne sich bei einer oder mehreren Messen registrieren
Auch Medien können sich, ohne einen Jornalisten vorort zu haben, bei einer oder mehreren Messen registrieren
Dann frage ich mich, wie du zu dieser Aussage kommst:
Ja, ein Jornalist kann bei einer Zeitung arbeiten und bei einer Zeitung können mehrere Jornalisten arbeiten,

Odeer gibt es dazu Anforderungen die du noch nicht genannt hast?
 

MQue

Top Contributor
maki hat gesagt.:
Odeer gibt es dazu Anforderungen die du noch nicht genannt hast?

Für die Beziehungen zwischen Messen -> Jornalisten und Messen ->Zeitungen habe ich nur die beiden Sätze,

zwischen Jornalisten und Zeitungen eben, dass ein Jornalist bei einer Zeitung arbeitet, aber eine Zeitung mehrere Jornalisten beschäftigen kann, was ja meiner Meinung nach auch logisch ist,
 
M

maki

Gast
Bitte geänderten Post beachten!

>> zwischen Jornalisten und Zeitungen eben, dass ein Jornalist bei einer Zeitung arbeitet, aber eine Zeitung mehrere Jornalisten beschäftigen kann, was ja meiner Meinung nach auch logisch ist,

"Deine Meinung" zählt nicht viel wenn die Anforderungen sie nicht hergeben.
Solltest dich hüten alles mögliche reinzustecken was deiner Meinung nach "logisch" ist... vermeidest unnütze Komplexität (hast ganz oben im ersten Post eine Zyklische Verbindung - ganz böse).

Also:
- Zeitungen wissen nix über Journalisten
- Journalisten wissen etwas über ihre Zeitung

Tabelle Messe und Tabelle Journalist (m:n) werden über Tabelle messe_journalist verknüft, genauso wie Tabelle Messe und Zeitung über messe_zeitung.

Tabelle Journalist hat ein Feld "Zeitung" mit einer Zeitungs ID (Fremdschlüssel), oder NULL.
 

MQue

Top Contributor
Da könntest Du recht haben, Jornalisten haben nicht unbedingt eine Beziehung zu den Zeitungen/Medien, das von dir oben würde dann ganz gut passen,
 

MQue

Top Contributor
maki hat gesagt.:
Tabelle Journalist hat ein Feld "Zeitung" mit einer Zeitungs ID (Fremdschlüssel), oder NULL.

Das heißt quasi, das es in der Tabelle Journalist eine Spalte id_zeitung (Fremdschlüssel) gibt?

Das mit dem Feld verwirrt mich ein bisschen, ist das dann noch eine extra Spalte Zeitungen oder reicht die Spalte id_zeitung?

Vielen Dank,
 
M

maki

Gast
Du brauchst ein Feld in der Journalist Tabelle, um die ID einer zeitung aufzunehmen (oder NULL), das ist dann ein FK.
 

MQue

Top Contributor
OK, verstehe, also ein Feld ist eine Spalte

eine kleine Aufgabe wäre dann da noch und zwar :
Code:
Es soll 3 Informationsmöglichkeiten (zu Jornalisten und Zeitungen) 
(email, Post und Telefon) geben und auch eine 
Bestätigung, dass etwas gesendet werden darf
(erteilt/nicht erteilt + Datum)

Ist es OK, wenn ich eine Tabelle mit den Spalten email, Post, Telefon, Bestaetigung und einem FK mache, der FK zeigt dann auf eine Zeitung (z.B.: Bild- Zeitung) oder auf einen Journalisten (Günter Sachs),

Wäre das OK oder soll ich das in den Tabellen Journalisten und Zeitungen unterbringen? (Der Nachteil wäre ja dann, dass die Spalten email, Post, Telefon und Bestaetgung in Journalisten und Zeitungen vorkommen würden),

Vielen Dank für die Hilfe,
lg
 
M

maki

Gast
>> Ist es OK, wenn ich eine Tabelle mit den Spalten email, Post, Telefon, Bestaetigung und einem FK mache, der FK zeigt dann auf eine Zeitung (z.B.: Bild- Zeitung) oder auf einen Journalisten (Günter Sachs),

Umgekehrt wird ein Schuh daraus ;)
Kannst nciht einfach so mal einen FK entweder aus der oder aus der Tabelle nehmen (ausser mit Vererbung, führt aber zuweit).

Brauchst eine neue Tabelle, zB KONTAKT mit den Feldern/Spalten wie email etc.

Sowohl Journalisten als auch Zeitungen haben wieder ein Feld/Spalte mit einem FK aus der KONTAKT Tabelle.
 

MQue

Top Contributor
Also ich nehme mal an es ist kein grober Fehler in meinem Diagramm, sonst hätten wahrscheinlich schon jemand einen Aufschrei gemacht,

Vielen Dank @maki für die Hilfe,

Beste Grüße,
 

MQue

Top Contributor
maki hat gesagt.:
Die Journalisten kennen ihr Medium noch nicht ;)

Aber ich hab doch in der Tabelle Jornalisten eine Spalte/Feld FK_Medien, das kann entweder NULL sein, wenn es sich um einen freien Jornalisten handelt oder eben auf ein Medium verweisen,
Ist die Spalte FK_Medien zu wenig oder was fehlt da noch?

Vielen Dank,
 
M

maki

Gast
Es steht nicht im Diagramm ;)

Wenn die Spalte das ist, ist es doch ok.

Nachtrag: Hab es übersehen, alles OK, mein Fehler.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Tabellendesign Datenbankprogrammierung 4

Ähnliche Java Themen

Neue Themen


Oben