In der vorherigen Lerneinheit haben Sie Navigationsregeln eingerichtet, um sicherzustellen, dass Benutzer eine eindeutige ID für die neue Kleinanzeige eingegeben haben. Dieser Prozess ist frustrierend und unrealistisch, da Sie nicht wollen, dass die Benutzer Ihrer Site eine eindeutige ID durch Ausprobieren finden müssen. In dieser Lerneinheit richten Sie eine automatische Schlüsselgenerierung ein, so dass die Datenbank jedem neuen Datensatz in der Datenbank automatisch eine eindeutige Nummer zuordnet.
Die automatische Schlüsselerstellung ist ein komplexes Thema. In Kürze bedeutet dies, dass eine Datenbank neue Schlüssel auswählen kann, wenn sie über eine besondere Tabelle verfügt, die für die Schlüsselerstellung reserviert ist. In dieser Tabelle muss sich eine Liste mit bisher noch nicht verwendeten Schlüsseln in der einen Spalte (der Inkrementorspalte) und eine Liste mit geordneten Nummern beginnend mit 1 in der anderen Spalte (der Identitätsspalte) befinden. Wenn die Datenbank einen neuen Schlüssel benötigt, nimmt sie den Schlüssel aus der Zeile mit der 1 in der Identitätsspalte und bereitet einen neuen Schlüssel für das nächste Mal vor.
Wenn die Datenbank einen neuen eindeutigen Schlüssel benötigt, sucht Sie die Zeile mit einem Wert von 1 in der Identitätsspalte. Der Wert der Inkrementor-Spalte dieser Zeile enthält den nächsten verfügbaren Schlüssel. Die Datenbank verwendet diesen Schlüssel und aktualisiert die Tabelle, damit beim nächsten Mal ein neuer Schlüssel zur Verfügung steht.
| Identitätsspalte | Inkrementor-Spalte |
|---|---|
| 3 | 78 |
| 4 | 3 |
| 1 | 65 |
| 2 | 12 |
Nachdem der nächste verfügbare Schlüssel aus der Tabelle abgerufen wurde, wird die Tabelle für das Abrufen des nächsten Schlüssels aktualisiert. Die Datenbank kann also mehrere Schlüssel auf einmal abrufen, indem Sie den Wert der Inkrementor-Spalte für mehr als eine Zeile abruft.
Kurz gesagt, damit die automatische Schlüsselerstellung funktioniert, benötigen Sie lediglich eine Schlüsselerstellungstabelle mit zwei Spalten: einer Primärschlüsselspalte, die als Identitätsspalte verwendet wird, und einer Spalte zum Speichern des nächsten verfügbaren Schlüssels. Diese Tabelle muss mit einem Datensatz initialisiert werden, dessen Identitätsspaltenwert 1 beträgt, und dessen Inkrementorspaltenwert dem ersten verfügbaren Schlüssel entspricht, der verwendet werden soll. Nachdem Sie diese Tabelle eingerichtet haben, sind Sie in der Lage, die automatische Schlüsselerstellung zu verwenden.