Es gab bereits viele gute Antworten darauf, die sich so ziemlich auf "Abhängig von den Umständen" beschränken, und ich kann diesen nichts hinzufügen.
Eine Sache, die noch nicht erwähnt wurde, die meiner Meinung nach erwähnt werden muss, ist, dass Sie niemals Primärschlüssel wiederverwenden sollten, die von einer Sequenz oder einem AUTO_INCREMENT-System generiert wurden.
Wenn Sie ein Element löschen, dem von einem solchen System ein Primärschlüssel zugewiesen wurde, werden Lücken in der Primärschlüsselspalte durch die gelöschten Daten hinterlassen. Es besteht die große Versuchung, diese Lücken neuen Elementen zuzuweisen, wenn sie hinzugefügt werden, oder noch schlimmer, die vorhandenen Daten zu mischen, um eine neue ID zu erhalten, um die Lücken zu entfernen, aber dies führt zu Problemen, die Sie haben würden Sie müssen sich nie damit auseinandersetzen, wenn Sie die Schlüssel einfach in Ruhe gelassen haben.
Angenommen, Sie führen eine Datenbank mit Druckern für die Verwaltung der Nachbestellung von Verbrauchsmaterialien. Der Drucker 13, ein alter Laserdrucker, funktioniert nicht mehr, so dass Sie ihn wegwerfen können. In der Zwischenzeit bestellt jemand aus einem anderen Grund einen neuen Thermodrucker für den Barcode-Druck im Lager, und dieser Drucker kommt zufällig vor dem Ersatz für Drucker 13 an. Der Administrator meldet diesen neuen Drucker in der Datenbank an, da 13 jetzt kostenlos ist Wenn Sie IDs recyceln, wird dem neuen Thermodrucker 13 als ID zugewiesen.
Jetzt sagt Ihnen jemand, dass der Drucker 13 fast leer ist. Sie erinnern sich, dass der Drucker 13 ein Laserdrucker ist, sodass Sie ihn nicht in der Datenbank nachschlagen müssen und eine Tonerkartusche bestellen. Nur Sie mussten tatsächlich ein Thermotintenpaket bestellen, da der Drucker 13 kein Laserdrucker mehr ist. Wenn die Tonerpatrone eintrifft, können Sie sie nicht verwenden, da sie für den Drucker falsch ist. Sie können keine Barcodes mehr ausdrucken und keine Bestellungen versenden, die auf den Versand warten.
Schlimmer noch, was passiert, wenn Sie den Drucker 13 löschen und alle nach ihm kommenden Drucker mischen, um die Lücke zu füllen? Der Drucker 14 (eine altersschwache alte Punktmatrix) wird zum Drucker 13, der Drucker 15 wird zum Drucker 14 und so weiter.
Auf allen Druckern befinden sich Etiketten, sodass auf sie mit der Datenbank verwiesen werden kann. Jetzt sind jedoch alle Etiketten veraltet. Sie müssen sich umsehen, jeden Drucker im Unternehmen suchen (der Hunderte von Druckern enthalten könnte!) Und sie neu kennzeichnen. Das ist kaum eine effektive Nutzung der Zeit. Und es ist auch ein fehleranfälliger Prozess, und was passiert, wenn er einfach nie ausgeführt wird? Jemand ruft an, um mitzuteilen, dass der Drucker 14 defekt ist und dringend repariert werden muss. Sehen Sie also nach und stellen Sie fest, dass der Drucker 14 ein Tintenstrahldrucker an der Rezeption ist. Nur weil Sie die IDs gemischt haben, muss der Nadeldrucker dringend repariert werden. Der Typ, der das Problem angerufen hat, bleibt hängen, während die Rezeptionistin einen Techniker hat, den sie nie angerufen hat, um einen Drucker zu reparieren, der nicht kaputt war.
Sie sollten sich IDs, die von einem Auto-Inkrement-System zugewiesen wurden, als permanent vorstellen. Sie sind unveränderlich und können nicht wiederverwendet werden, selbst wenn das, worauf sich die ID bezieht, nicht mehr vorhanden ist. Einige Leute behaupten, dass sie sich keine Sorgen machen müssen, dass die IDs ausgehen, aber selbst bei 32-Bit-Systemen und signierten IDs sind immer noch etwa 2 Milliarden IDs verfügbar. Wenn Sie die ID-Spalte vorzeichenlos machen können, verdoppelt sich dies auf 4 Milliarden, und auf 64-Bit-Systemen ist die Anzahl der verfügbaren IDs buchstäblich größer als die Anzahl der Sterne am Himmel. Ihnen werden nicht die Ausweise ausgehen.