Neueingaben weitergeben

Hallo,

ich habe eine kleine Datenbank erstellt, 3 Tabellen:

Name, Art, Liste.

Es geht um eine Telefonkontakliste… schönes Wort! :smile:
In Tabelle Name werden Vor- und Nachname gespeichert (zusammengesetzter Primärschlüssel). In Art wird die Kategorie gespeichert, also ob Handy oder Festnetz (Primärschlüssel). In Liste werden die beiden Tabellen zusammengeführt und eine weitere Spalte, Nummer, eingefügt. In Nummer wird eben die Telefonnummer eingetragen. In der Tabelle Liste ist Nummer der Primärschlüssel.
Wie kann ich nun erreichen, dass die Einträge in Name und Art eingetragen werden, wenn ich in der Tabelle Liste etwas eintrage, dass nicht in den beiden anderen Tabellen steht.
Also ich will damit die Redundanz verhindern, klar. Wenn ich in Art z.B. Handy eingetragen habe, kann ich das in Liste einfach per PulldownMenü auswählen… aber wenn ich dort z.B. Büro eintrage, dies aber noch nicht in Art eingetragen ist, soll es auch automatisch dort eingetragen werden. Wie geht das?

Ich hoffe, ich konnte mich verständlich genug ausdrücken :confused:

Vielen Dank für Antworten,
Grüße,
Rogge

OK, neuer Versuch
Ich habe das jetzt etwas einfacher gemacht.

Die Tabelle NAME hat nur noch eine Spalte, Name.
Die Tabelle Art hat weiterhin nur eine Spalte, Art.

Tabelle Liste besteht aus den beiden vorherigen Spalten und einer weiteren Spalte, Nummer.

In den ersten beiden Tabellen sind die jeweiligen Spalten auch die Primärschlüssel. In Liste ist nur Nummer der Primärschlüssel.

Nun das Problem, wenn ich in Liste einen neuen Namen eintrage, mit zugehöriger Nummer und der Art, dann bekomme ich eine Fehlermeldung, dass Liste mit Name in Beziehung steht und ich den Namen in Liste nicht eintragen kann, weil der Name nicht in der Tabelle NAME steht.

Wie kann ich also einen neuen Namen automatisch in NAME eintragen lassen, wenn ich den in LISTE eintrage?

Hallo Rogge,

nur Geduld, es ist Urlaubszeit und nicht jeder hat Internet am Urlaubsort…

Ich habe das jetzt etwas einfacher gemacht.

das ist Ansichtssache :smile:

Die Tabelle NAME hat nur noch eine Spalte, Name.

Falsch: Es sollte min. ID_Name (Autowert) und Name sein.

Die Tabelle Art hat weiterhin nur eine Spalte, Art.

Falsch: es sollte min. ID_ART (Autowert), ID_Name (Zahl) und Art sein.

Tabelle Liste besteht aus den beiden vorherigen Spalten und
einer weiteren Spalte, Nummer.

Falsch: es sollte ID_Nummer (Autowert), ID_Art (Zahl) und Nummer sein

In den ersten beiden Tabellen sind die jeweiligen Spalten auch
die Primärschlüssel. In Liste ist nur Nummer der
Primärschlüssel.

Falsch: die ID_XXXXs sind der Primärschlüssel und sonst garnix

Nun das Problem, wenn ich in Liste einen neuen Namen eintrage,
mit zugehöriger Nummer und der Art, dann bekomme ich eine
Fehlermeldung, dass Liste mit Name in Beziehung steht und ich
den Namen in Liste nicht eintragen kann, weil der Name nicht
in der Tabelle NAME steht.

logisch, deswegen erstelle ausschließlich Beziehungen über IDs! Alles andere ist tödlich :frowning:

Wie kann ich also einen neuen Namen automatisch in NAME
eintragen lassen, wenn ich den in LISTE eintrage?

das Problem hast du dann mit den IDs gelöst :smile:

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)

Hallo Wolfgang,

danke für deine Antwort. Hatt schon gar nicht mehr damit gerechnet, aber ich habe auch nicht an die Urlaubszeit gedacht.

Ich habe nun wieder eine neue Frage, wozu diese IDs? Ich will nicht den ID als Primärschlüssel, sondern die eigentlichen Inhalte, wie ich es beschrieben habe, denn, wenn ich beispielsweise nicht die Telefonnummer als Primärschlüssel wähle, kann es vorkommen, dass ich zwei Personen dieselbe Nummer gebe. Und das ist jawhol nicht ok. Darum ist für mich schonmal die Telefonnummer als Primärschlüssel zwingend. Alles andere wäre falsch. Die Nummer darf es nur EINMAL geben.

MfG,
Rogge

Hallo Rogge,

Ich habe nun wieder eine neue Frage, wozu diese IDs?

nur so erhältst du eindeutige Werte für die Beziehungen zwischen deinen Tabellen.
Was wäre in deinem Fall, wenn es zwei mal den Peter Meier gibt?

Ich will
nicht den ID als Primärschlüssel, sondern die eigentlichen
Inhalte, wie ich es beschrieben habe,

sorry, aber diese Denkweise ist total falsch

denn, wenn ich
beispielsweise nicht die Telefonnummer als Primärschlüssel
wähle, kann es vorkommen, dass ich zwei Personen dieselbe
Nummer gebe.

Großer Irrtum, bei den Feldern kannst du definieren, dass sie eindeutig sind!! Der Primärschlüssel hat eine ganz andere Aufgabe!!

Und das ist jawhol nicht ok.

richtig, die Frage ist: was wird bei deiner Datenbank zuerst eingegeben? Die Nummer oder der Name?

Darum ist für mich
schonmal die Telefonnummer als Primärschlüssel zwingend.

nein ist sie nicht! Du machst einen Denkfehler, s.o.

Alles andere wäre falsch. Die Nummer darf es nur EINMAL geben.

*LOL* Highländer :smile:

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)