การเริ่มโครงการเล็ก ๆ กับ EF แต่ฉันมีคำถามบางอย่างเกี่ยวกับการเข้าร่วมตารางและกุญแจเป็นต้นให้บอกว่าฉันมีตารางแอปพลิเคชันและตารางสิทธิ์ แอปพลิเคชันมีสิทธิ์มากมายและสิทธิ์แต่ละรายการสามารถเป็นของแอปพลิเคชันจำนวนมาก (หลายต่อหลายคน)
ตอนนี้ตารางใบสมัครและสิทธิ์เป็นเรื่องง่าย:
Applications
--------------
PK ApplicationID
Name
Permissions
--------------
PK PermissionID
Name
แต่วิธีที่ดีที่สุดที่จะทำตารางเข้าร่วมคืออะไร? ฉันมีสองตัวเลือกเหล่านี้:
ApplicationPermissions
-----------------------
PK ApplicationPermissionID
CU ApplicationID
CU PermissionID
หรือ
ApplicationPermissions
-----------------------
CPK ApplicationID
CPK PermissionID
PK = Primary Key
CPK = Composite Primary Key
CU = Composite Unique Index
คุณเคยถูกเผาไปทางอื่นหรือไม่? มันตั้งค่าอย่างเคร่งครัด? มันเกิดขึ้นกับฉันว่า "ความแตกต่าง" จำนวนมากจะถูกแยกออกจากรูปแบบที่เก็บของฉัน (ตัวอย่างเช่นฉันแทบจะไม่เคยสร้างวัตถุสิทธิ์ทั้งหมดและเพิ่มลงในแอปพลิเคชัน แต่ทำได้ด้วย ID หรือชื่อเฉพาะหรือ บางอย่าง) แต่ฉันคิดว่าฉันกำลังมองหาเรื่องราวสยองขวัญไม่ทางใดก็ทางหนึ่ง