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

Tabellenaufteilung in Access 2007

Dieses Thema im Forum "Datenmodellierung, Datenbank-Design" wurde erstellt von Dantyz, 28 Juni 2012.

  1. Dantyz

    Dantyz Benutzer

    Hallo alle miteinander,
    ich mache ein Auslandspraktikum in einem Unternehmen und versuche eine Datenbank mit Access 2007 zu erstellen. Diese wird nur fuer Adressen verwendet werden.
    Meine Frage wieviele Tabellen ich brauche?
    Die Parameter lauten:
    -ID
    -Firma
    -Strasse
    -Vor-Nachname der Kontaktperson
    -Telefon (allgemeine Tel.Nr)
    -E-Mail (allgemeine E-Mail, nicht die der Kontaktperson)
    -PLZ
    -Stadt (Die Stadt wird bestimmt zusammen mit der PLZ zu einer eigenen Tabelle um redundante Daten zu vermeiden)
    -Branche (Die Branche habe ich bereits mit einer anderen Tabelle namens Branche verknuepft, damit ich in der eigentlichen Tabelle eine Drop-Down Funktion habe)

    Vielleicht koennt ihr mir weiterhelfen.
    Vielen Dank im Voraus

    Dantyz
     
  2. PLSQL_SQL

    PLSQL_SQL Datenbank-Guru

    Hy,

    ich würde einen Personentabelle anlegen, anschließend eine Adresstabelle und eine AdressTypentabelle.

    Somit könntest du pro Person mehrere Adressen unterschiedlichen Typs (Privat, Firma ....) erfassen.


    Also bei mir mindestens 3!

    Lg
     
  3. Dantyz

    Dantyz Benutzer

    hai,
    danke für deine Antwort.
    Es gibt pro Person aber nur eine Adresse und zwar die der Frima, daher wäre diese Aufteilung nicht sinngemäß.
    Oder ich mache 2 Tabellen.

    1.Tab Firma:
    ID (P.Key)
    Firma (F.Key)
    Vor-Nachname der Kontaktperson
    Telefon
    E-Mail
    Branche

    2.Tab Adresse
    Firma (P.Key)
    Strasse
    PLZ
    Stadt

    So wäre es doch auch in Ordnung oder?
    Danke im Voraus
     
  4. PLSQL_SQL

    PLSQL_SQL Datenbank-Guru

    Ja klar...

    jedoch nur wenn NIIIIEEE eine Person mehrere Adressen haben soll, ODER eine Firma mehrere Adressen haben soll. (mehrere Standorte)

    Lg
     
  5. Dantyz

    Dantyz Benutzer

    Hallo PLSQL_SQL,

    Ok gut, ich habe jetzt die Tabellen erstellt.
    Jedoch will mir die Tabelle 2 als P.Key nicht Firma zulassen, da es keinen Nullwert haben darf und ich als Datentyp Text habe. Ich musste jetzt nochmal ID als Zusatz-Spalte hinzufuegen, da diese als Autonummer definiert ist, dieses Feld wollte ich eigentlich gar in der Tabelle Adresse haben.
    Hast du einen Vorschlag wie man mein Problem loesen kann?

    LG
     
  6. PLSQL_SQL

    PLSQL_SQL Datenbank-Guru

    Das passt schon...

    Du machst eine ID und nennst diese "FIRMA_ID" und verwendest diese als PK in der Tabelle Adresse und als FK in der Tabelle Firma.

    Lg
     
  7. Dantyz

    Dantyz Benutzer

    Bin grad etwas verwirrt.
    Kann ich denn "Firma_id" als PK in der Tabelle Firma definieren und auch als PK in der Tab. Adresse?
    Kann "Firma_id" zugleich PK und FK sein?

    Falls nicht, ich habe in der Tab. Adresse versucht Firma als PK zu definieren, da ich "Firma_id" als FK setzen wollte. Jedoch gibt mir das Programm eine Warnung zurück, (Index or primery key cannot contain a Null value) da "Firma" den Datentypen "text" hat.

    Lg
     
  8. Dantyz

    Dantyz Benutzer

    Ich dachte mir ich könnte einfach eine "Adress_ID" zur Tab. Adresse hinzufügen und diesen als PK definieren, jedoch geht das nicht, da jede Tabelle nur eine "AutoNumber" haben darf.
    Dann dachte ich mir, dass ich die "Strasse" (diese ist eindeutig - Tab. Adresse) als PK benenne, da diese jedoch vom Datentyp Memo ist, kann man sie gar nicht als PK definieren.
    Ich weiss nicht welchen PK ich in der Tab.Adresse benennen soll, PLZ und Stadt geht ja nicht.

    Außerdem ist mir unklar, wie die Tabellen wissen, dass es sich bei der "Firma_ID" um die gleiche handelt.
    Als ich einen neuen Datensatz eingegeben habe in beiden Tabellen kam bei der Tab.Firma die "Firma_ID" 102 und bei der Tab. Adresse die "Firma_ID" 103. Wie definiert man das im Programm, dass es die gleiche sein muss?


    Bitte um Hilfe

    LG
     
  9. Dantyz

    Dantyz Benutzer

    Ich dachte auch daran "Firma" aus der Tab.Adresse zu löschen, da ich ja in beiden "Firma_ID" habe.

    LG
     
  10. ukulele

    ukulele Datenbank-Guru

    Jede Tabelle sollte einen Primary Key PK haben der eindeutig sein muss! Das kann also kein Straßenname sein und normalerweise auch keine PLZ. Gibt es keinen eindeutiges Atribut muss ein künstliches geschaffen werden (fortlaufende, eindeutige Nummer z.B.). Fügt man nun den PK einer Tabelle bei einer anderen in den Datensatz ein spricht man vom Foreign Key FK. Der Datensatz in deiner anderen Tabelle (z.B. Adresse) wird dann durch den Eintrag in der FK Spalte (z.B. Firma_ID) einem Datensatz in der Tabelle Firma zugeordnet. Natürlich gehört die "Firma" nicht in die Adresstabelle, die Information steht ja schon in der Firma Tabelle, sie wäre sonst doppelt / redundant.

    Jegliche FK Spalte muss zu irgendeiner PK Spalte einer anderen Tabelle im Bezug stehen.
     
    PLSQL_SQL gefällt das.
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