Datenmodellierung - Wie verknüpfe ich die Tabellen

Hallo zusammen,

da ich hier wohl in nächster Zeit immer mal wieder einige Fragen in Richtung Datenmodellierung/Access (arbeite an einer eierlegenden Wollmilchsau für meine Frima) stellen werden, möchte ich mich jetzt schon mal vorab für die Bereitschaft zur Hilfe hier ganz doll bedanken. Ihr habt mir bisher immer geholfen und ich bin sehr dankbar, dass es das hier gibt.

Frage: Wie stelle ich die Verknüpfung unter den Tabellen her?

Situation: Ich habe in meinem Datenmodell die verschiedensten Entitäten welche ich alle mit den gleichen Standfunktionalitäten austatten will. Heißt es soll je Eintrag zu der Entität 0-n Anhänge, 0-n Vorgänge oder 0-n Bemerkungen hinterlegt werden können. Ich habe also jeweils eine Tabelle für Anhänge(Dateien), Vorgänge und Bemerkungen, welche es jetzt mit den unterschiedlichsten Entitäten zu verbinden gilt.

Ich kann ja weder den Schlüssel z.B. der Vorgänge in die Entitätentabelle einbinden bzw. auch nicht andersherum, da ich ja dann weiß ich wieviele Fremdschlüssel in der Vorgangstabelle habe. Die Lösung muss also eine Zwischentabelle sein.

Lösung 1: Neben den Fremdschlüssel des Vorgangs füge ich alle weiteren möglichen Fremdschlüssel der Entitäten hinzu. Kann mir dann von einer Entität ausgehend in der jeweiligen Spalte den passenden Wert suchen. Könnte funktionieren (dürfen Fremdschlüssel leer sein?) aber erscheint mir nicht wirklich eine schöne Lösung zu sein.

Lösung 2: Neben den Fremdschlüssel des Vorgangs habe ich ein „Entitätstypfeld“, welches mir beschreibt, welchen Fremdschlüssel ich in der weiteren Schlüsselspalte vorfinde. Hört sich für mich auch nicht wirklich datenbanktechnisch astrein an.

Lösung 3: ??? :wink:

Vielen Dank schon mal vor ab.
LG
Wilhelm

Hallo,

Frage: Wie stelle ich die Verknüpfung unter den Tabellen her?

Im Beziehungsfenster die Tabellen hinzufügen und per „Drag&Drop“ ein Verbindungslinie zwischen den entspr. Schlüsselfeldern erzeugen.

Situation: Ich habe in meinem Datenmodell die verschiedensten
Entitäten welche ich alle mit den gleichen
Standfunktionalitäten austatten will. Heißt es soll je Eintrag
zu der Entität 0-n Anhänge, 0-n Vorgänge oder 0-n Bemerkungen
hinterlegt werden können. Ich habe also jeweils eine Tabelle
für Anhänge(Dateien), Vorgänge und Bemerkungen, welche es
jetzt mit den unterschiedlichsten Entitäten zu verbinden gilt.

versteh ich nicht ganz…
Was ist denn eine „Entität“ bei Dir?

Ich kann ja weder den Schlüssel z.B. der Vorgänge in die
Entitätentabelle einbinden bzw. auch nicht andersherum, da ich
ja dann weiß ich wieviele Fremdschlüssel in der
Vorgangstabelle habe.

genau so wenig…

Die Lösung muss also eine
Zwischentabelle sein.

Lösung 1: Neben den Fremdschlüssel des Vorgangs füge ich alle
weiteren möglichen Fremdschlüssel der Entitäten hinzu. Kann
mir dann von einer Entität ausgehend in der jeweiligen Spalte
den passenden Wert suchen. Könnte funktionieren (dürfen
Fremdschlüssel leer sein?) aber erscheint mir nicht wirklich
eine schöne Lösung zu sein.

Lösung 2: Neben den Fremdschlüssel des Vorgangs habe ich ein
„Entitätstypfeld“, welches mir beschreibt, welchen
Fremdschlüssel ich in der weiteren Schlüsselspalte vorfinde.
Hört sich für mich auch nicht wirklich datenbanktechnisch
astrein an.

das wäre auch völliger Quatsch…

Lösung 3: ??? :wink:

zeige mal konkret(!) die Namen der Tabellen mit den Tabellenfeldern und beschreib, welche Bedeutung die Tabellen haben sollen.

Viele Grüße vom Bodensee
Franz, DF6GL

Hallo,

erstmal vielen Dank für die Antwort. Ich habe mich wohl nicht klar genug ausgedrückt.
Es geht um die Modellierung der DB, also wie die Verbindung im Detail zwischen den einzelnen Tabelle aussehen muss.

Ich habe eine Tabelle wie z.B. Bemerkung
(key, titel, datum, ersteller, beschreibung)

oder Datei oder Vorgang

Die Datensätze dieser 3 Tabellen möchte ich gerne je nach Bedarf Datensätzen diverser anderer Tabellen (z.B. Artikel, Kunde, etc.) zuordnen.

Ich frage mich nun, wie ich diese Zuordnung realiseren kann?

Ich hoffe, dass ich es plausibel erklären konnte.

Gruß
Wilhelm

Hallo,

erstmal vielen Dank für die Antwort. Ich habe mich wohl nicht
klar genug ausgedrückt.
Es geht um die Modellierung der DB, also wie die Verbindung im
Detail zwischen den einzelnen Tabelle aussehen muss.

Ich habe eine Tabelle wie z.B. Bemerkung
(key, titel, datum, ersteller, beschreibung)

oder Datei oder Vorgang

Die Datensätze dieser 3 Tabellen möchte ich gerne je nach
Bedarf Datensätzen diverser anderer Tabellen (z.B. Artikel,
Kunde, etc.) zuordnen.

Ich frage mich nun, wie ich diese Zuordnung realiseren kann?

Nun, wenn ich es mal so interpretiere, als dass eine Tabelle „Bemerkung“ vorhanden ist, die eine Sammlung von „Bemerkungen“ („Titel“) darstellt und nun eine solche Bemerkung daraus ausgewählt und einem Datensatz aus einer anderen Tabelle („Artikel“) zugeordnet werden soll, dann ist eine zusätzliche Tabelle nötig:

tblArtikelBemerkungen:
ABID (Autowert, Primärschlüssel)
AB_ArtID (Long, Fremdschlüssel für ArtikelID aus Tabelle „Artikel“)
AB_key (Long, Fremdschlüssel für key aus „Bemerkung“
. evtl. weitere Felder
.

Wenn einem bestimmten Artikel aber nur eine(!) solcher „Bemerkungen“ zugeordnet werden soll/braucht, dann reicht die Aufnahme des „Key“-Wertes aus Tabelle „Bemerkung“ in der Artikeltabelle in einem zusätzlichen (Fremdschlüssel)-Feld:

Artikel:
ArtikelID
Art_Nummer
Art_Bemkey (Long, Fremdschlüsselfeld für key aus Bemerkung)
.
.
.

Viele Grüße vom Bodensee
Franz, DF6GL

.
.

Hallo,
da sind wir meinem Ziel schon etwas näher :wink:

Jetzt aber ich aber wie gesagt nicht nur die tblArtikel, sondern noch diverse andere Tabelle. Heißt es im Endeffekt, ich muss für jede Verbindung zwischen der tblBemerkung und einer anderen Tabelle eine eigene entsprechende Zwischentabelle implementieren? Oder gibt es vielleicht auch eine andere Lösung, da es in meinem Fall z.B. 10 andere Tabelle werden könnten?

Vielen Dank
Gruß
Wilhelm

Hallo,

da sind wir meinem Ziel schon etwas näher :wink:

Jetzt aber ich aber wie gesagt nicht nur die tblArtikel,
sondern noch diverse andere Tabelle. Heißt es im Endeffekt,
ich muss für jede Verbindung zwischen der tblBemerkung und
einer anderen Tabelle eine eigene entsprechende
Zwischentabelle implementieren?

genau das, wenn der inhaltliche „Sinn“ der Zwischentabelle sich von den anderen unterscheidet.

Oder gibt es vielleicht auch
eine andere Lösung,

Warum suchst Du eine andere Lösung?

da es in meinem Fall z.B. 10 andere
Tabelle werden könnten?

10 solcher Tabellen geben in einer relationalen DB noch lange keinen Anlass zur Beunruhigung.

Mach Dich mal mit den Grundlagen der Tabellennormalisierung vertraut:

http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/

Viele Grüße vom Bodensee
Franz, DF6GL

Bedanke mich recht herzlich für die Hilfe.
Werd mich dann mal ans Werk machen.

LG

Sorry kann leider nicht mit Sicherheit helfen, möchte auch nichts falschen sagen.

Gruss
Yvonne