เรากำลังทำงานกับเว็บแอปพลิเคชันซึ่งผู้ใช้ยังไม่สามารถเข้าถึงได้ เจ้านายของฉันสังเกตเห็นว่าระเบียนที่สร้างขึ้นใหม่ได้รับ ID มากกว่า 10,000 รายการแม้ว่าเราจะมีระเบียนน้อยกว่า 100 รายการในตาราง เธอคิดว่าเว็บอินเตอร์เฟสด้วยเหตุผลบางอย่างสร้างเร็กคอร์ดชั่วคราวมากกว่า 100 เท่ามากกว่าเรคคอร์ดจริง (และลบทิ้ง) และสิ่งนี้สามารถนำเราให้วิ่งออกจากระยะภายในไม่กี่เดือนหลังจากปล่อย
ฉันไม่คิดว่าเธอถูกต้องเกี่ยวกับสาเหตุของ ID อัตราเงินเฟ้อ (เพื่อนร่วมงานที่สามารถตอบคำถามนี้ในวันหยุดดังนั้นเราไม่ทราบแน่นอน) แต่สมมติว่าเธอเป็น เธอบอกว่าเธอเกลียดที่จะใช้คอลัมน์ bigint และเธอต้องการให้เราหยุดการสร้างคอลัมน์ ID โดยอัตโนมัติและเขียนรหัสฝั่งเซิร์ฟเวอร์ซึ่งเลือกจำนวนเต็ม "ไม่ได้ใช้" แรกและใช้เป็น ID
ฉันเป็นนักเรียนที่จบการศึกษาด้านวิทยาศาสตร์คอมพิวเตอร์พร้อมประสบการณ์การใช้งานเพียงเล็กน้อยโดยเติมบทบาทนักพัฒนารุ่นเยาว์ เธอมีประสบการณ์หลายปีในการจัดการฐานข้อมูลทั้งหมดขององค์กรของเราและออกแบบส่วนใหญ่ ฉันคิดว่าว่าเธอไม่ถูกต้องในกรณีนี้รหัสประจำตัวที่ยิ่งใหญ่นั้นไม่มีอะไรต้องกลัว แต่ฉันยังไม่เชื่อคำตัดสินของฉัน
อะไรคือข้อโต้แย้งสำหรับและต่อต้านแต่ละตำแหน่ง? มีอะไรที่ไม่ดีเกิดขึ้นได้ถ้าเราใช้ป้ายกำกับขนาดใหญ่และอะไรคืออันตรายของการคิดค้นฟังก์ชั่นการเติมล้ออัตโนมัติ? มีวิธีที่สามซึ่งดีกว่าอย่างใดอย่างหนึ่ง? เหตุผลของเธออาจเป็นเพราะต้องการหลีกเลี่ยงเงินเฟ้อของค่า ID ใบหน้า? ฉันสนใจที่จะฟังเกี่ยวกับเหตุผลในทางปฏิบัติด้วยเช่นกันบางทีรหัสประจำตัวขนาดใหญ่อาจใช้งานได้ในทางทฤษฎี แต่ก็ปวดหัวในทางปฏิบัติ
แอปพลิเคชันไม่คาดว่าจะจัดการกับข้อมูลจำนวนมาก ฉันสงสัยว่ามันจะถึง 10,000 บันทึกจริงภายในไม่กี่ปีถัดไป
หากมันสร้างความแตกต่างเรากำลังใช้เซิร์ฟเวอร์ Microsoft SQL แอปพลิเคชั่นเขียนด้วยภาษา C # และใช้ Linq เป็น SQL
ปรับปรุง
ขอบคุณฉันพบคำตอบและความคิดเห็นที่มีอยู่น่าสนใจ แต่ฉันเกรงว่าคุณจะเข้าใจผิดคำถามของฉันดังนั้นพวกเขาจึงมีสิ่งที่ฉันอยากรู้
ฉันไม่ได้กังวลเกี่ยวกับเหตุผลที่แท้จริงของ ID สูง หากเราไม่สามารถหาได้ด้วยตัวเองฉันสามารถถามคำถามอื่นได้ สิ่งที่ฉันสนใจคือเข้าใจกระบวนการตัดสินใจในกรณีนี้ สำหรับเรื่องนี้โปรดสมมติว่าแอปพลิเคชันจะเขียนบันทึก 1,000 รายการต่อวันจากนั้นลบ 9999รายการ ฉันเกือบจะแน่ใจว่านี่ไม่ใช่กรณี แต่นี่คือสิ่งที่หัวหน้าของฉันเชื่อเมื่อเธอขอเธอ ดังนั้นภายใต้สถานการณ์สมมุติเหล่านี้ข้อดีและข้อเสียของการใช้ bigint หรือการเขียนรหัสของเราเองซึ่งจะกำหนดรหัส (ในทางที่นำรหัสของระเบียนที่ลบไปแล้วกลับมาใช้ใหม่เพื่อให้แน่ใจว่าไม่มีช่องว่าง)
สำหรับเหตุผลที่แท้จริงฉันสงสัยอย่างยิ่งว่านี่เป็นเพราะเราเคยเขียนโค้ดเพื่อนำเข้าข้อมูลจากฐานข้อมูลอื่นเพื่อเป็นการพิสูจน์แนวคิดที่ว่าการโยกย้ายในภายหลังสามารถทำได้ในระดับหนึ่ง ฉันคิดว่าเพื่อนร่วมงานของฉันสร้างระเบียนหลายพันรายการระหว่างการนำเข้าและลบในภายหลัง ฉันต้องยืนยันว่านี่เป็นกรณีจริง แต่ถ้าเป็นเช่นนั้นก็ไม่จำเป็นต้องมีการดำเนินการ