# Tabellendesign



## MQue (19. Okt 2008)

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,


----------



## Gelöschtes Mitglied 5909 (19. Okt 2008)

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 (20. Okt 2008)

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 (20. Okt 2008)

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,


----------



## maki (20. Okt 2008)

>> 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 (20. Okt 2008)

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,


----------



## maki (20. Okt 2008)

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


----------



## MQue (20. Okt 2008)

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


----------



## maki (20. Okt 2008)

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?


----------



## Guest (20. Okt 2008)

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?


----------



## MQue (20. Okt 2008)

ups, vergessen einzuloggen, das oben ist von mir!


----------



## maki (20. Okt 2008)

> 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 (20. Okt 2008)

maki hat gesagt.:
			
		

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


----------



## maki (20. Okt 2008)

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 (20. Okt 2008)

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 (20. Okt 2008)

Vielen Dank!!!!!!, so probier ichs mal


----------



## MQue (20. Okt 2008)

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,


----------



## maki (20. Okt 2008)

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


----------



## MQue (20. Okt 2008)

OK, verstehe, also ein Feld ist eine Spalte

eine kleine Aufgabe wäre dann da noch und zwar :

```
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


----------



## maki (20. Okt 2008)

>> 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 (20. Okt 2008)

Hallo,

was sagt ihr zu diesem Design, kann man das so lassen oder wo könnte man es noch verbessern?
Vielen Dank,

http://www.java-forum.org/de/userfiles/user9672/Messen.jpg


----------



## MQue (21. Okt 2008)

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,


----------



## maki (21. Okt 2008)

Die Journalisten kennen ihr Medium noch nicht


----------



## MQue (21. Okt 2008)

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,


----------



## maki (21. Okt 2008)

Es steht nicht im Diagramm 

Wenn die Spalte das ist, ist es doch ok.

Nachtrag: Hab es übersehen, alles OK, mein Fehler.


----------



## MQue (21. Okt 2008)

Vielen Dank nochmal,

lg


----------

