簡體   English   中英

該表是3NF版本嗎?

[英]Is this table in 3NF?

我已經為獸醫診所創建了一個數據庫。

我有一個稱為約會的表,這是其中包含的內容。

appointment_id, patient_id, customer_id, staff_id, date_time
  • 每個客戶(所有者)都有一個病人(寵物)。
  • 由一名工作人員任命。

那我的表結構對嗎? 它應該是3nf。

不它不是。

appointmentspatients之間存在傳遞依賴。 考慮此更新異常:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM