ฉันคิดว่ามันเป็นเรื่องส่วนตัวและขึ้นอยู่กับการออกแบบของคุณ
ส่วนใหญ่ แต่นี่ดูเหมือนจะเป็นการออกแบบที่มาจากต์บันทึกการใช้งาน ในบันทึกที่ใช้งานอยู่องค์กรของคุณมีวิธีการดำเนินการกับฐานข้อมูลและต้องรู้ว่าเป็นตัวระบุฐานข้อมูล
เมื่อใช้รูปแบบอื่นเช่นที่เก็บที่มีตัวสร้างข้อมูลที่เก็บข้อมูลนี้ในวัตถุจะไม่จำเป็นและอาจไม่เหมาะสม
ยกตัวอย่างPerson
วัตถุ ฉันได้รับชื่อซึ่งอาจหรืออาจจะไม่ซ้ำกันภายในครอบครัว ในขณะที่จำนวนประชากรเพิ่มขึ้นชื่อที่ใหญ่ขึ้นนั้นไม่ซ้ำกันอีกต่อไปดังนั้นเราจึงได้สร้างตัวระบุตัวแทนสำหรับระบบที่มีขนาดใหญ่ขึ้นเรื่อย ๆ ตัวอย่างของสิ่งเหล่านี้ ได้แก่ ใบขับขี่ของฉันและหมายเลขประกันสังคม ฉันไม่ได้เกิด ID ที่ได้รับมอบหมายต้องใช้รหัสเหล่านี้ทั้งหมด
สิ่งเหล่านี้ส่วนใหญ่ไม่ได้ทำคีย์ / รหัสหลักที่ดีสำหรับซอฟต์แวร์เนื่องจากไม่เป็นสากล อย่างน้อยไม่ได้อยู่นอกระบบที่เฉพาะเจาะจงของพวกเขาเห็นได้ชัดว่า SSN เป็นเอกลักษณ์และสอดคล้องกับการบริหารจัดการประกันสังคม เนื่องจากเราไม่ได้เป็นผู้ให้บริการทั่วไปของข้อมูลนี้คุณจะไม่เรียกพวกเขาแต่ข้อมูลที่พวกเขาแทนเช่นid
SSN
บางครั้งก็มีวัตถุที่ประกอบอย่างสมบูรณ์เช่นหนึ่งDriversLicense
ซึ่งอาจมีข้อมูลทั้งหมดที่ใบขับขี่ทำ
รหัสทั่วไปทั้งหมดนั้นเป็นกุญแจตัวแทนในระบบและสามารถถูกแทนที่ด้วยในการอ้างอิงหน่วยความจำเพียงแค่มีรหัสเพื่อให้ค้นหาและเก็บบันทึกได้ง่ายขึ้น
เนื่องจาก an id
ไม่ใช่ข้อมูลเชิงแนวคิดฉันจึงสงสัยว่า (โดยทั่วไป) อยู่ในวัตถุเนื่องจากไม่ได้มาจากโดเมน มันควรจะถูกเก็บรักษาไว้ตามวัตถุประสงค์ของมันซึ่งก็คือการระบุวัตถุที่ไม่มีวิธีอื่นในการแสดงตัวตนที่เป็นเอกลักษณ์ สิ่งนี้สามารถทำได้ในพื้นที่เก็บข้อมูล / คอลเลกชันด้วยง่าย
ในซอฟต์แวร์หากคุณต้องการแสดงวัตถุเป็นรายการหรือคงอยู่คุณสามารถทำได้จากวัตถุที่เก็บ / รวบรวมหรือวัตถุอื่น ๆ ที่เกี่ยวข้อง เมื่อส่งต่อไปยัง Data Mapper (ถ้าแยกต่างหาก) คุณสามารถส่ง.update( id, obj )
ได้
คำเตือน : ฉันยังไม่ได้พยายามที่จะสร้างระบบที่ไม่มีรหัสภายในองค์กรและอาจพิสูจน์ตัวเองผิด