Tabellenaufteilung in Access 2007

Dantyz

Benutzer
Beiträge
6
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
 
Werbung:
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
 
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
 
Ja klar...

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

Lg
 
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
 
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
 
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
 
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
 
Werbung:
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.
 
Zurück
Oben