8
การออกแบบและการปฏิบัติเพื่อป้องกันรายการ null ที่ผิดพลาดจากฐานข้อมูล
ส่วนหนึ่งของโปรแกรมของฉันดึงข้อมูลจากหลาย ๆ ตารางและคอลัมน์ในฐานข้อมูลของฉันเพื่อการประมวลผล บางคอลัมน์อาจเป็นnullแต่ในบริบทการประมวลผลปัจจุบันที่เป็นข้อผิดพลาด สิ่งนี้จะ "เกิดขึ้นตามหลักวิชา" ไม่ควรเกิดขึ้นดังนั้นหากมันชี้ไปที่ข้อมูลที่ไม่ดี ข้อผิดพลาดที่มีความรุนแรงแตกต่างกันขึ้นซึ่งข้อมูลคือnull; เช่นสำหรับบางฟิลด์การประมวลผลควรจะหยุดและบางคนได้รับแจ้งสำหรับคนอื่น ๆ การประมวลผลควรได้รับอนุญาตให้ดำเนินการต่อและเพียงแค่แจ้งใครบางคน มีสถาปัตยกรรมที่ดีหรือหลักการออกแบบเพื่อจัดการกับรายการที่หายาก แต่เป็นไปได้nullหรือไม่? โซลูชันควรเป็นไปได้ที่จะนำไปใช้กับ Java แต่ฉันไม่ได้ใช้แท็กเพราะฉันคิดว่าปัญหาค่อนข้างไม่เชื่อเรื่องภาษา ความคิดบางอย่างที่ฉันมี: ใช้ NOT NULL ที่ง่ายที่สุดคือการใช้ข้อ จำกัด NOT NULL ในฐานข้อมูล แต่ถ้าหากการแทรกข้อมูลดั้งเดิมมีความสำคัญมากกว่านั้นขั้นตอนการประมวลผลในภายหลังจะเป็นอย่างไร ดังนั้นในกรณีที่ส่วนแทรกจะใส่nullลงในตาราง (อาจเป็นเพราะข้อบกพร่องหรืออาจเป็นเหตุผลที่ถูกต้อง) ฉันไม่ต้องการให้ส่วนแทรกล้มเหลว สมมติว่าส่วนต่าง ๆ ของโปรแกรมขึ้นอยู่กับข้อมูลที่ใส่เข้าไป แต่ไม่ได้อยู่ในคอลัมน์นี้ ดังนั้นฉันจึงค่อนข้างเสี่ยงข้อผิดพลาดในขั้นตอนการประมวลผลปัจจุบันแทนขั้นตอนการแทรก นั่นเป็นเหตุผลที่ฉันไม่ต้องการใช้ข้อ จำกัด NOT NULL อย่างไร้เดียงสาขึ้นอยู่กับ NullPointerException ฉันสามารถใช้ข้อมูลราวกับว่าฉันคาดหวังว่ามันจะอยู่ที่นั่นเสมอ (และนั่นควรจะเป็นอย่างนั้นจริง ๆ ) และจับ NPE ที่ได้ในระดับที่เหมาะสม (เช่นเพื่อให้การประมวลผลของรายการปัจจุบันหยุดลง แต่ไม่ใช่ความคืบหน้าการประมวลผลทั้งหมด ) …