Hallo Steffen87,
das mit dem Primärschlüssel hast du korrekt verstanden und es ist auch richtig, jede ID zum Primärschlüssel zu machen. Das mit dem Fremdschlüssel ist wie folgt zu verstehen: z.B. deine ArtikelID in der Tabelle ArtikelAnzahl ist wahrscheinlich ein Integer, genauso wie die ID in der Tabelle Artikel, damit ist das Feld als Fremdschlüssel geeignet. Das ist zunächst einmal eine Festlegung, die du triffst, das das Feld als Fremdschlüssel zu verstehen ist. Erst in einer entsprechenden
SQL Abfrage oder in einer Master - Detail Beziehung wird es dann tatsächlich als Fremdschlüssel benutzt.
Wenn du aber willst, dass das
DBMS bestimmte Prüfungen für dich vornimmt, z.B. das ein Satz in Artikel nicht gelöscht werden darf, solange in ArtkelAnzahl ein Datensatz auf diesen Artikel verweist, oder dass in ArtikelAnzahl nur die Werte in dem Feld ArtikelID eingestzt werden dürfen, die auch in der Tabelle Artikel vorkommen, dann kannst du eine sogenannte referentielle Integrität definieren. Das geht wie folgt mit der
DB Oberfläche:
Über Umstrukturieren (oder bereits bei der Neudefinition) einer Tabelle wählst du in der DropdownListe Tabelleneigenschaften den Eintrag Referenzintegrität und klickst "Definieren" an. Links wählst du ArtikelID als Fremdschlüssel aus, rechts die Tabelle Artikel und dort das Feld ID. Dieser Definition gibst du noch einen Namen und fertig. Die Hilfe erklärt dir noch, was "Strikte Referenzintegrität" ist und was man unter Aktualisierungsregeln versteht. Letztere funktionieren aber nicht mit Delphi. Dort musst du ggf. selbst die Aktualisierungsregeln implementieren.