มีคำตอบที่ดีมากมายเกี่ยวกับสิ่งนี้ที่ต้มลงไปที่ "ขึ้นอยู่กับสถานการณ์" และฉันไม่สามารถเพิ่มอะไรให้กับสิ่งเหล่านั้นได้
สิ่งหนึ่งที่ไม่ได้กล่าวถึง แต่ฉันคิดว่าต้องพูดถึงคือคุณไม่ควรนำคีย์หลักมาใช้ซ้ำซึ่งสร้างขึ้นตามลำดับหรือระบบ AUTO_INCREMENT
เมื่อคุณลบรายการที่ได้รับการกำหนดคีย์หลักโดยระบบดังกล่าวจะมีช่องว่างในคอลัมน์คีย์หลักจากข้อมูลที่ถูกลบ มีการทดลองที่ดีในการกำหนดช่องว่างเหล่านั้นให้กับรายการใหม่เมื่อมีการเพิ่มหรือแย่กว่านั้นคือการสลับข้อมูลที่มีอยู่เพื่อให้ ID ใหม่เพื่อลบช่องว่าง แต่การทำเช่นนั้นจะทำให้เกิดปัญหาที่คุณต้องการ ไม่ต้องจัดการหากคุณทิ้งกุญแจไว้คนเดียว
สมมติว่าคุณกำลังเก็บฐานข้อมูลของเครื่องพิมพ์สำหรับจัดการเรียงลำดับวัสดุสิ้นเปลือง เครื่องพิมพ์ 13 เลเซอร์พรินเตอร์เก่าแยกย่อยจากการซ่อมเพื่อประหยัด ในขณะเดียวกันด้วยเหตุผลที่ไม่เกี่ยวข้องใครสั่งเครื่องพิมพ์ความร้อนใหม่สำหรับการพิมพ์บาร์โค้ดในคลังสินค้าและเครื่องพิมพ์ที่เกิดขึ้นก่อนที่จะมาแทนที่เครื่องพิมพ์ 13 ผู้ดูแลระบบบันทึกว่าเครื่องพิมพ์ใหม่ลงในฐานข้อมูลและเพราะตอนนี้ 13 ฟรี และคุณรีไซเคิล ID เครื่องพิมพ์ความร้อนเครื่องใหม่จะได้รับการจัดสรร 13 เป็น ID
ตอนนี้มีคนบอกคุณว่าเครื่องพิมพ์ 13 หมึกหมด คุณจำได้ว่าเครื่องพิมพ์ 13 เป็นเครื่องพิมพ์เลเซอร์ดังนั้นคุณจึงไม่ต้องกังวลกับการค้นหาในฐานข้อมูลและคุณสั่งซื้อตลับผงหมึก มีเพียงคุณเท่านั้นที่จำเป็นต้องสั่งชุดหมึกความร้อนเนื่องจากเครื่องพิมพ์ 13 ไม่ใช่เครื่องพิมพ์เลเซอร์อีกต่อไป เมื่อตลับผงหมึกมาถึงคุณไม่สามารถใช้งานได้เนื่องจากเป็นหมึกเติมที่ไม่ถูกต้องสำหรับเครื่องพิมพ์คุณไม่สามารถพิมพ์บาร์โค้ดได้อีกและคุณไม่สามารถจัดส่งคำสั่งซื้อใด ๆ ที่รอการส่งมอบได้
จะเกิดอะไรขึ้นถ้าคุณลบเครื่องพิมพ์ 13 และสลับเครื่องพิมพ์ทั้งหมดที่ลงมาเพื่อเติมเต็มช่องว่าง เครื่องพิมพ์ 14 (เมทริกซ์เก่าบางจุดเสื่อม) กลายเป็นเครื่องพิมพ์ 13, เครื่องพิมพ์ 15 กลายเป็นเครื่องพิมพ์ 14 และอื่น ๆ
เครื่องพิมพ์ทั้งหมดมีป้ายกำกับอยู่จึงสามารถอ้างอิงข้ามกับฐานข้อมูลได้ แต่ตอนนี้ป้ายกำกับทั้งหมดล้าสมัยแล้ว คุณจะต้องเดินไปรอบ ๆ ค้นหาเครื่องพิมพ์ทุกเครื่องในธุรกิจ (ซึ่งอาจมีหลายร้อย!) และติดฉลากใหม่ มันแทบจะไม่เป็นการใช้เวลาอย่างมีประสิทธิภาพ และมันก็เป็นกระบวนการที่เกิดข้อผิดพลาดได้ง่ายและจะเกิดอะไรขึ้นถ้ามันไม่เคยเกิดขึ้น? มีคนโทรเข้ามาเพื่อบอกว่าเครื่องพิมพ์ 14 มีปัญหาและจำเป็นต้องแก้ไขอย่างเร่งด่วนดังนั้นคุณจึงต้องค้นหาและพบว่าเครื่องพิมพ์ 14 เป็นเครื่องพิมพ์อิงค์เจ็ทในแผนกต้อนรับ เพียงเพราะคุณได้สับรหัสรอบ ๆ แล้วมันเป็นเครื่องพิมพ์ดอทเมทริกซ์ที่ต้องแก้ไขอย่างเร่งด่วน ผู้ชายที่โทรมาหาปัญหานั้นก็ถูกแขวนไว้ในขณะที่พนักงานต้อนรับมีคนคอยช่วยเหลือด้านเทคโนโลยีเธอไม่เคยเรียกร้องให้เปิดเครื่องเพื่อซ่อมเครื่องพิมพ์ซึ่งไม่เสีย
คุณควรคิดถึงรหัสที่กำหนดโดยระบบเพิ่มอัตโนมัติเป็นแบบถาวรมันไม่เปลี่ยนรูปและไม่สามารถนำกลับมาใช้ใหม่ได้แม้ว่าสิ่งที่ ID นั้นอ้างถึงจะสิ้นสุดลงแล้วก็ตาม บางคนอ้างว่าพวกเขาไม่ต้องการที่จะกังวลเกี่ยวกับ ID หมด แต่ถึงแม้จะมีระบบ 32 บิตและ ID ที่ลงนามแล้วก็ยังมี ID 2 พันล้านหรือมากกว่านั้น หากคุณสามารถทำให้คอลัมน์ ID ไม่ได้ลงนามได้นี่จะเพิ่มเป็น 4 พันล้านเท่าและบนระบบ 64 บิตจำนวนของรหัสที่มีอยู่นั้นมากกว่าจำนวนดวงดาวบนท้องฟ้าอย่างแท้จริง คุณจะไม่หมดรหัส