[英]Is this table in 3NF?
我已經為獸醫診所創建了一個數據庫。
我有一個稱為約會的表,這是其中包含的內容。
appointment_id, patient_id, customer_id, staff_id, date_time
那我的表結構對嗎? 它應該是3nf。
不它不是。
appointments
和patients
之間存在傳遞依賴。 考慮此更新異常:
UPDATE appointments
SET appointments.patient_id = 42
WHERE appointments.appointment_id = 1;
/* hey that's not my dog!
*/
如果患者和客戶是一對一的,則將患者ID存儲在客戶的表上,並通過聯接引用它。
如果一對多,則將每個患者的客戶ID存儲在患者表上。
讓我用簡單的話解釋一下
第三范式的條件:
-它是第二范式
-沒有傳遞功能依賴
在這種關系中,請考慮
subscription_id為A
Patient_id為B
customer_id為C
在您的關系中,A-> B
B-> C和A-> C
因此,存在傳遞函數依賴。
因此,它不在3NF中 。
希望能幫助到你。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.