Laden...

DB-Schema gesucht

Erstellt von ayrtonsenna vor 17 Jahren Letzter Beitrag vor 17 Jahren 1.337 Views
ayrtonsenna Themenstarter:in
27 Beiträge seit 2006
vor 17 Jahren
DB-Schema gesucht

Hallo,
ich will demnächst ein Programm zur Kontaktverwaltung schreiben und sammle schon mal einige Gedanken. Leider bin ich beim DB-Entwurf schon wieder am Ende. X(
Folgendes Szenario muss abgedeckt sein:
Es muss eine Trennung von Firmen und Personen sein, beide sollten aber möglichst in einer Tabelle stehen. Jede Person kann aber (theoretisch) in mehreren Firmen mitarbeiten, also PersonInFirma. Diese PersonInFirma ist dann für andere Sachen auswählbar.
Beispiel:
Ich habe Firma F1 und Firma F2 und Herrn Schmidt. Herr Schmidt ist nun in F1 für die Hardware und in F2 für die Software verantwortlich.
D.h. ich habe 3 Einträge für Herr Schmidt:

  1. Herr Schmidt als Privatperson (z.B. email schmidt@...de),
  2. Herr Schmidt als HW-Admin in F1 (z.B. email schmidt@f1...de),
  3. Herr Schmidt als SW-Admin in F2 (z.B email schmidt@f2...de).

Wie bilde ich das am besten ab.
Eine Möglichkeit wäre 3 Einträge in eine große Tabelle. Aber ich weiß nicht, ob das sinnvoll ist, weil dann Name,Vorname, Geburtstag usw. auch 3 mal drin stehen.
Oder macht man nur einen Eintrag in eine "große" Tabelle für Herr Schmidt und die einzelnen PersonInFirma in einer kleinen Tabelle mit idPersonInFirma, idPerson, idFirma.
Oder vielleicht doch anders? Ich hätte gern eure Meinung gewusst.
Vielen Dank

3.728 Beiträge seit 2005
vor 17 Jahren
Kontakt-DB

Ich würde Personen und Firmen grundsätzlich trennen und in zwei verschiedenen Tabellen speichern. Ich würde sogar noch weiter gehen und auch die Adressen in einer separaten Tabelle speichern. Eine Firma kann z.B. 10 Büros an verschiednenen Standorten haben. Alle laufen unter der selben Kunden-Nr, weil z.B. der Einkauf der Firma zentralisiert ist.

Was ist z.B. mit Vereinbarungen/Verträgen/Rabetten etc. die für eine Firma gelten? Die müssten redundant gepflegt werden, wenn alles in einer Tabelle steht und von der Firma mehrere Kontaktpersonen bekannt sind. Wenn diese Kontaktpersonen dann auch noch mit anderen Firmen verknüpft sind, kommt alles völlig durcheinander.

Außerdem bekommt man es meistens nicht mit, wenn Mitarbeiter A zur Firma B wechselt. Bei einem großen Kundenstamm ist das nicht mehr pflegbar.

Ich halte den ganzen Ansatz nicht für empfehlenswert, wenn es um eine Konktaktverwaltung im Sinne von Kundenbeziehungen gehen soll.

ayrtonsenna Themenstarter:in
27 Beiträge seit 2006
vor 17 Jahren

Hallo und danke für die Antwort,
die Dinge wie Adressen, email, Telefon usw habe ich schon in eine andere Tabelle gepackt.
Mein Problem ist wirklich die Abbildung der "PersonInFirma" (siehe 1.Posting).
Von der "großen" Tabelle habe ich mich verabschiedet. Ich favorisiere derzeit folgende Lösung:

  1. eine Contact-Tabelle mit den 3 Feldern ID,IDPerson, IDFirma. Die ID aus dieser Tabelle verwende ich dort, wo ein Kontakt benötigt wird z.B. bei Vereinbarungen usw.
  2. eine Namen-Tabelle, in der die eindeutigen Dinge über Personen und Firmen stehen, z.B. Name
  3. weitere Tabellen für Adressen, mail, Tel, Bankverbindung usw. Hier ist die ID der Contact-Table der Fremdschlüssel.