Primärschlüssel IT Datenbanken?

3 Antworten

Weil ne Telefonnr. sich ändern kann (also der Besitzer) und zu den Adressen gehört. Die Klammert man seperat aus.

Tabelle: Telefon

Kontakt_idTelefonE-Mail1123456meyer@t-offline.de298745t-schmidt@waeb.de28566661tati@r-byte.job

Bei Tabelle Person haben wir den Namen in Vorname und Nachname zerlegt und eine Kontakt_id vergeben mit der die Person eindeutig identifiziert wird. Diese ID lässt sich nun in weiteren Tabellen verwenden.

Bei der Tabelle Telefon speichern wir die Telefonnummer(n) und ggf. auch weitere Kontaktdaten. Mit der ID sorgen wir für die Zuordnung zur richtigen Person. Nun haben wir den Vorteil, dass wir alle Kontaktdaten in einer eigenen Tabelle haben und dort nur ein mal pflegen müssen. Bekommt Tatinka eine weitere Telefonnummer oder ändert sie sich bzw. die Mailadresse, dann ist muss man die Daten nur an einer einzigen Stelle ändern. Heiratet Tatinka und nimmt den Namen des Mannes an, dann ändern wir nur in einer Tabelle den Nachnamen. Die Zugehörigkeit ihrer weiteren Daten ändert sich desshalb nicht.

Es wäre denkbar die Datenbank um eine weitere Tabelle zu erweitern, um so noch mehr Informationen zu speichern.

 

Eine Person kann mehrere Telefonnummern haben (z.B. Mobilnummer und Festnetzsummer) und über eine Telefonnummern können auch mehrere Personen erreicht werden (z.B. über die Festnetzsummer alle Angehörigen des Haushaltes).

Daher ist eine Telefonnummer eher ungeeignet als Primärschlüssel.

Rein technisch gesehen müsste das ein Varchar oder Text-Feld sein. Diese kann man durchaus zu Primärschlüsseln machen, allerdings ist das für die Indizierung nicht gerade optimal. Die ist bei Zahlenfeldern besser.

Wenn man das jedoch Anwendungsbezogen programmiert, dann ist das sehr leicht machbar. Also quasi bei jedem Neueintrag vorher prüfen, ob es die Nummer bereits gibt.

Problem bei beiden Varianten ist übrigens, dass es verschiedene Arten gibt eine Telefonnummer zu schreiben. Wenn diese vom Nutzer per Hand eingegeben werden, muss man diese gut validieren um sie in ein einheitliches Format zu bringen.

Woher ich das weiß:Berufserfahrung