1. Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm
    Information ausblenden

Normalisierung der Tabellen richtig?

Dieses Thema im Forum "Datenmodellierung, Datenbank-Design" wurde erstellt von SaFu31, 13 April 2016.

  1. SaFu31

    SaFu31 Neuer Benutzer

    Schönen Abend an alle,

    seit einer Woche arbeite ich mich im Selbststudium an eine Datenbank heran. Obwohl ich jetzt viel gelesen und mir viele Lernvideos angeguckt habe bin ich mir nicht ganz sicher ob ich die Tabellen richtig organisiert (Normalisiert habe)

    Ich habe eigentlich alles wo Datensätze doppel vorkommen könnte in eine eigne Tabelle geräumt. z.b. PLZ, Telefonnummer, Portnummern Vornamen, Nachnamen usw.

    Eventuell kann mir jemand Tipps geben.

    Im Anhaang mal ein PDF mit meiner Planung.

    Gruß
    SaFu
     

    Anhänge:

  2. akretschmer

    akretschmer Datenbank-Guru

    Deine Datentypen sind für den Eimer. Für IP-Adressen z.B. hat PG spezielle Datentypen - da muß man kein TEXT nehmen. Was machst Du, wenn ein Carrier 2 oder mehr eMail-Adressen hat? Oder Handynummern? Oder Festnetznummern? Andererseits, Portnummern so auszugliedern (reden wir von TCP/IP - Ports?) macht auch wenig Sinn IMHO. Länderkennungen sind ein gutes Ding für PK/FK-Einsatz, da muß man nicht unbedingt noch einen extra künstlichen Schlüssel erzeugen - Geschmacksfrage.
     
  3. SaFu31

    SaFu31 Neuer Benutzer

    Hallo, danke erstmal das du es dir angeguckt hast.

    Es handelt sich um TCPip Ports habe gedacht ich lege es in eine extra tabelle da mehrere Ports von mehreren Geräten verwendet werden sodass ich keine Redundanzen habe.

    Wie legt man das mit der 2ten rufnummer an, benötigt man dafür keine extra tabellen da Telefonnummern sowieso eindeutig sind?

    danke schonmal.
     
  4. akretschmer

    akretschmer Datenbank-Guru

    Die Eindeutigkeit ist ja nicht das Problem - das Problem ist, daß Du nicht wissen kannst, ob Dein Partner 1, 2 oder 47 Telefone besitzt.
     
  5. ukulele

    ukulele Datenbank-Guru

    Das mit den Ports ist so ne Sache, du verbrauchst viel mehr Speicher für eine eigene Tabelle mit Portnummer, ID und einer Zwischentabelle zwischen Ports und Geräten als wenn du die Ports direkt in die Geräte Tabelle packst. Natürlich ist es normalisiert, macht aber mehr Arbeit und hat keine nennenswerten Vorteile. Wenn der Port jetzt noch einen Namen oder eine Beschreibung zwischen 0 und 8000 Zeichen hätte sähe die Welt anders aus.

    Telefonnummern sollte man tatsächlich in eine eigene Tabelle auslagern.
     
  6. SaFu31

    SaFu31 Neuer Benutzer

    Dank für die Antworten.
    Das mit dem Ports habe ich nicht so richtig überdacht ich brauche vielleicht 10-20 Ports auf Hunderten Geräten. Werde es nochmal überarbeiten. Schiebt man die Telefonnummern dann in eine Tabelle etwa so.

    Tab_Telefonnummern
    ID_Telefonummer
    Handynummer
    Festnetznummer
    Notfallnummer
    Zweitenummer
    ZweiteHandnummer
    Drittenummer
    DritteHandynummer

    Gruß
    SaFu
     
  7. akretschmer

    akretschmer Datenbank-Guru

    Nein.

    Der Trend geht zum Vierthandy. So what?

    Code:
    test=# create table leute (id int primary key, name text);
    CREATE TABLE
    test=*# create table telefone (wer int references leute, was text, nummer text);
    CREATE TABLE
    test=*#
    
    Nun kannst Du jedem beliebig viele Telefone zuordnen. Einen PK kannst Du auch so noch bei Telefone bilden:

    Code:
    test=# create table leute (id int primary key, name text);
    CREATE TABLE
    test=*# create table telefone (wer int references leute, was text, nummer text, primary key(wer, was));
    CREATE TABLE
    
    Rollback und Kaffee.
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden