Access-Datenbank: Mehrere Primärschlüssel, die jedoch nur zusammen eindeutig sind?

... komplette Frage anzeigen

1 Antwort

Zunächst einmal: Ein Primärschlüssel kann aus mehreren Feldern bestehen, werden auch Verbundschlüssel oder engl. compound key genannt. Er muss nur insgesamt eindeutig sein. Auch als Fremdschlüssel in anderen Tabellen kann er so verwendet werden, man muss dann in der Tabellendefinition die betreffenden Felder in Klammern angeben, durch Komma getrennt.

Für die Struktur der Datenbank gibt es unterschiedliche Philosophien. Da es für die Erstellung von Datenbanken auch Software gibt, die als Assistenten einem dabei behilflich sind, gibt es bestimmte Regeln, die dieser Methode entgegenkommt. Eine solche Methode ist z.B. die Vergabe einer nur für die Datenbank intern verbindliche Nummern. Sie dienen zur Definition von Strukturen und sind keine Daten des Anwenders mit einem praxisbezogenen Wert, also rein fiktiv. Das Gegenstück dazu ist die Philosophie, nur Daten, die auch in der praktischen Anwendung vorkommen, in die Datenbank zu nehmen. Mitunter muss man sich diese auf der Anwenderseite erst schaffen. Beispiele dafür sind Mitglieds-Nrn, Vertrags-Nrn, Rechnungs-Nrn, Artikel-Nrn, Kunden-Nrn usw. Diese werden einmalig und fest zugeordnet einem Verarbeitungsobjekt zugeordnet. Für Bewegungsdaten, wo verschiedene Kategorien kombiniert werden, können damit eindeutige Primärschlüssel durch Kombination festgelegt werden.

In einer Rechnungstabelle, wo auch alle Rechnungpositionen einzeln aufgeführt werden, reicht die Rechnungs-Nr zur Eindeutigkeit nicht aus, man muss die Artikel-Nr dazunehmen.

Die Informatikausbildung vermittelt vorzugsweise Grundwissen nach Gesichtpunkten des Unterrichtswesens. Dabei werden gängige Methoden in Form von Schulbeispielen angeboten. Eine Datenbank kann allerdings weit mehr an Lösungen anbieten. Vor allem ist die Einrichtung von Datenbanken, wenn man den Umgang mit Daten verstanden hat, eine einfache Sache.

Nun zu Deinem Problem:

Ich kenne Deinen Datensatz nicht und kann deshalb nicht beurteilen, ob Du überhaupt eine Id im Sinne einer maschinell erzeugten lfd. Nr. benötigst. Ich würde die Id weglassen und eine reale Bezeichnung, die am besten auch eine Nr ist, verwenden. Wenn die Id auch außerhalb der Datenbank für den Datensatz bezeichnend ist und dies die einzige eindeutige und praktikable Bezeichnung ist, kannst sie zusammen mit der Versions-Nr kombiniert als Primärschlüssel verwenden.

Generell kann man auch ohne Primärschlüssel auskommen, würde ich aber nur in bestmmten Fällen machen. Ein eindeutiger Index kann einen Primärschlüssel ersetzen, wenn er nicht als Fremdschlüssel in einer anderen Tabelle benötigt wird.

Antwort bewerten Vielen Dank für Deine Bewertung