Antworten auf deine Fragen:
Neues Thema erstellen

Datenbank

DonUndertaker

Nicht mehr ganz neu hier

Hallo Leute,

ich würde mal schätzen as passt hier nicht so recht rein, aber ich denke mir bei so vielen kompetenten Postern kann mir sicher jemand weiterhelfen.

Ich hab mal eine Frage zum Aufbau einer Datenbank, da ich mir nicht ganz sicher bin wie ich das mit dem Schlüssel und Beziehungen lösen kann, damit alles ein eindeutig ist.

Sagen wir mal die Datenbank soll folgendes aufnehmen können:

- beliebig erweiterbare Liste von Firmen und eine Firmenbeschreibung (PLZ...)
- Ansprechpartner von jeder Firma
- Firma und Ansprechpartner sollen Telefonnummern und Anschrift haben

Mein Lösungsansatz:

Ich würde folgende Tabellen erstellen:

- Firma (Inhaber, Name )
- Ansprechpartner (Name, Vorname)
- Anschrift (Straße Hausnummer, PLZ, Ort, Land)
- Telefon (Telefon1,Telefn2, Telefon3, Fax, E-Mail)

Jetzt muss ich das ganz "nur noch" verbinden übe die Beziehungen und Schlüssel um die Eindeutigkeit zu erreichen.

Ich hoffe mein Anliegen ist verständlich.
 
Zuletzt bearbeitet:

stb_87

Web-Sheriff - ohne Bild

AW: Datenbank

Moin,

mal ganz einfach veranschaulicht:



Jede Firma hat eine eindeutige ID - Primärschlüssel, die in jeder weiteren Tabelle vorkommt und auf die man sich bei Abfragen etc. bezieht.

Da eine Firma z. B. mehrere Ansprechpartner und Telefon- bzw. Faxnummern haben kann, hat die Tabelle jeweils auch eine eigene ID.

So würde ich es jedenfalls lösen
 

DonUndertaker

Nicht mehr ganz neu hier

AW: Datenbank

Sry aber das wichigste was mir dabei auch Kopfzerbrechen macht hab ich vergessen zu erwähnen.

Also die Firma wie auch die Ansprechpartner der Firma sollen Telefone und Anschrift haben.
Die Ansprechpartner einer Firma sollten außerdem nach wichtigkeit geordnet sein.
 

stroyer

Aktives Mitglied

AW: Datenbank

Ich hätte beim Ansprechpartner eine spalte Wichtigkeit gemacht (bei jeder Abfrage dann ORDER BY wichtigkeit). Wegen Telefonnummer würden mir vier Möglichkeiten einfallen:
1) eigene Tabelle für Telefon_Firma und Telefon_Ansprechpartner (würde ich nicht empfehlen)
2) über die id die zwei Ursprungstabellen trennen (Telefonnummer von Firma hat id 1-10.000, Telefonnummer von Ansprechpartner 10.001-20.000; einfach zur Ansprechpartner_id 10.000 addieren)
3) über ein eigenes Feld bei der Telefonnummerntabelle, in dem steht, ob die Telefonnummer einer Firma oder einem Ansprechpartner zugeordnet ist, bzw.
ein Feld id_Firma und eines id_Ansprechpartner, wobei eines von beiden eigentlich fast immer 0 ist.
4) die Telefonnummer (oder auch z.B. 4 Telefonnummern) direkt in die Tabelle Firma und Ansprechpartner schreiben

Ich würde die zweite Möglichkeit von 3) vorziehen, der Rest ist etwas schlampig.
 

DonUndertaker

Nicht mehr ganz neu hier

AW: Datenbank

@ stb_87
Warum hast du in der Tabelle Anschrift die ID-Firma als Primärschlüssel und bei den anderen als Fremdschlüssel???

@ stroyer Danke für die Antwort, werd es gleich ausprobieren.
 

DonUndertaker

Nicht mehr ganz neu hier

AW: Datenbank

Hallo ich noch mal^^

Gibt es eigentlich keine Komplikationen wenn ich den Fremdschlüssel von ID-Firma und ID-Ansprechpartner abwechselnd frei lasse.

Wisst Ihr was ich mein?
 

stroyer

Aktives Mitglied

AW: Datenbank

Das hängt von deiner Abfrage ab. Aber wenn eines immer auf 0 ist, dann kannst du einfach SELECT * FROM Telefon WHERE id_Firma=...
Du musst das aber nicht einmal, falls eine Telefonnummer sowohl einem Ansprechpartner als auch einer Firma zugeordnet ist, dürfte eigentlich auch kein Problem entstehen.
 
Zuletzt bearbeitet:

DonUndertaker

Nicht mehr ganz neu hier

AW: Datenbank



Hier mal die Beziehungen, ich hab das Problem, dass wenn ich im Formular was ändern will, Access immer sagt, diese Datensatzgruppe kann nicht aktualisiert werden.
 

stroyer

Aktives Mitglied

AW: Datenbank

In Access kann sein, dass der da drinnen eine doppelte Zuweisung sieht.
Ich vermute das Problem darin, dass, ich weiß nicht, ob man das ändern kann, dass es bei ID-Ansprechpartner immer "nach rechts weg" geht. Es kann aber auch sein, dass ich falsch liege.
 

saila

Moderatorle

AW: Datenbank

Das hängt von deiner Abfrage ab. Aber wenn eines immer auf 0 ist, dann kannst du einfach SELECT * FROM Telefon WHERE id_Firma=...
Du musst das aber nicht einmal, falls eine Telefonnummer sowowohl einem Ansprechpartner als auch einer Firma zugeordnet ist, dürfte eigentlich auch kein Problem entstehen.

Wenn der Query und die darin enthaltene Bedingung korrekt aufgebaut ist nicht.
 

stroyer

Aktives Mitglied

AW: Datenbank

Das habe ich eigentlich gemeint; denn der Query ist egal, ob jetzt in dem anderen Feld 0 steht oder was anderes, da es ja in der Abfrage nicht vorkommt. Aber ich sehe das Problem darin, dass das nur durch Optimierung möglich ist, es sei denn eine Firma ist ein Ansprechpartner. Die einzige Möglichkeit ist beim Einfügen zu prüfen, ob die Telefonnummer /Adresse schon besteht und das entsprechende ID-Feld leer ist. Aber wenn jetzt zum Beispiel die eine Telefonnummer doppelt zugeordnet ist, aber ein drittes Mal extrig, dann kommt automatisch ein leichtes Chaos zustande, gegen das man nichts machen kann.
 

stroyer

Aktives Mitglied

AW: Datenbank

Ich habe mich zugegebenermaßen etwas schlecht ausgedrückt. Ich habe gemeint, dass auf der Grafik ID-Ansprechpartner eventuell als Ausgang fungiert, sprich dass die Striche (die zwei schwarzen) auf dem Screenshot nach rechts gehen zu der ID.

Das was ich hauptsächlich gemeint habe zu probieren ist das Fenster Ansprechpartner gleich rechts neben das Fenster Firma zu verschieben und dann erst Telefonnummer und Adresse. Ich weiß allerdings nicht, ob sich dann am Problem was ändert; wie gesagt ich hab Access so gut wie nie verwendet.
 

saila

Moderatorle

AW: Datenbank

Solange in der DB-Table-Struktur die ID's (gleich welche) nicht mit NULL gesetzt ist, kann per INNER oder RIGHT JOIN eine entsprechende Abfrage erfolgen. Es kommt dann lediglich auf WHERE an ;)
 

DonUndertaker

Nicht mehr ganz neu hier

AW: Datenbank

Die Platzierung der Tabellenfenster ist für die Beziehung die durch die Striche dargestellt werden doch eigentlich egal.
 

saila

Moderatorle

AW: Datenbank

Je nach dem, wenn du schon ein DB-Design oder Query-Design darstellen möchtest, sollte das auch entsprechend passen. Aber das hat im Grunde mit dem Thema relativ wengi bis nichts zu tun. Ausgenommen es war deine Intention es so darzustellen.
 

DonUndertaker

Nicht mehr ganz neu hier

AW: Datenbank

Hallo Leute,

ich bin bei der ganzen Sache schon ein ganzes Stück voran gekommen.
Die Firmen und Ansprechpartner habe ich bei telefon und adresse jetzt durch die IDs von 10001 bis 30000 und 30001 bis ... getrennt und die jeweilige ID der Firma oder des Ansprechpartners mit eingetragen.
Das ganze klappt auch wunderbar.
Jetzt ist mir aber ein neues Problem eingefallen.
Ich möchte den Inhaber, den ich zuerst nur mit seinem Nachnamen in der Tabelle firma abgelegt hatte jetzt als einen Ansprechpartner aus der Tabelle ansprechpartner ziehen.
Wie löse ich die geschichte am besten?
Und wie lese ich das dann aus, weil auch Datensätze ohne einen Inhaber dabei ausgelesen werden müssen und gleichzeitig die adresse und telefon Tabelle der Firma und dem Ansprechpartner zugeordnet werden muss.
Oder wird das dann nur noch ein Wirwar und habt ihr eine bessere Lösung?
Übrigens habe ich mich jetzt für MySQL und PHP entschieden und bin von MSAccess weggegangen.

MFG
DonUndertaker
 

stroyer

Aktives Mitglied

AW: Datenbank

MySQL würde ich auch vorziehen (MsAccess habe ich zwar nie probiert).
Ich weiß nicht, ob ich dich jetzt ganz richtig verstanden habe; aber meiner Meinung nach würde es ja genügen wenn du in den inhaber nur als ansprechpartner einspeicherst und in der Haupttabelle dafür noch ein Feld namens inhaber_id verlinken.
Ich würde die ganzen Einträge in verschiedene Tabellen speichern und die dann zusammen verlinken.
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.616
Beiträge
1.538.358
Mitglieder
67.536
Neuestes Mitglied
QuestionMark
Oben