[英]Best Way to Handle Zero to One (Optional) Foreign Key Relationships in MySql
[英]best practice for foreign key relationships
從上述兩種可能性中創建外鍵的最佳實踐是:
table1:用戶(id,名稱,密碼)table2:考試(id,名稱)表3:user_exam(is,user_id,exam_id)
可能性2:
table1:考試(id,名稱)table2:用戶(id,名稱,密碼,exam_id)
根據您所建模的內容,我猜您在考試和用戶之間存在多對多關系。 換句話說,您可以參加沒有用戶的考試,也可以參加沒有考試的用戶。 在這種情況下,模型2根本不起作用。
在模型2中,每次添加tehm考試時,每個用戶都只會獲得一個id,否則您將不得不修改multipel用戶記錄,這尤其會增加數據完整性問題的可能性,因為那里存在密碼。 除非可以保證永遠不需要進行多次考試,否則甚至不要考慮使用模型2。
根據您在談論哪種類型的考試,user_exams表可能應包括其他信息,例如日期。 您可能還需要什么取決於所建模數據的含義。
您的問題更像是一個基於意見的問題,但是據我所知,外鍵應該在聯結表中。 因此, 可能性1是使用外鍵的理想方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.