2016-06-13 152 views
0

的主密鑰在此ERD:關聯實體

enter image description here

證書的實體是一個關聯實體,它有一個唯一的標識符 - 證書編號。由於關聯實體從其他實體繼承其主鍵。關聯實體的關鍵字段是每個最終實體的主關鍵字是關聯實體上的外鍵,並且這兩個外鍵組合在一起成爲主鍵(Concepts from Textbook)。

證書實體的主鍵應該是一個包含三個部分的組合鍵:CertificateNumber,EmployeeID,CourseID?

或者其主鍵是CertificateNumber,並將EmployeeID,CourseID作爲此實體的屬性?

我很困惑這個問題,因爲通常一個關聯的實體沒有自己的標識符(證書編號)。它只是將其他實體的主鍵組合爲組合鍵(EmployeeID,CourseID),然後使用該組合鍵作爲其標識符。

謝謝

亞歷

回答

1

關聯實體沒有根據自己的屬性的主鍵。在第一個圖中,您創建了一個具有函數依賴關係(Employee_ID, Course_ID) -> Date_Completed的關聯實體。請注意,儘管Employee_IDCourse_ID是表中的列,但它們不是屬性。 ER模型中的屬性是從實體集到值集的映射。外鍵是關係的組成部分,不映射到值集。

在第二個圖中,通過添加代理鍵,您的關聯實體成爲與EmployeeCourse有關的正規實體。您的主鍵只是Certificate_Number,但(Employee_ID, Course_ID)上的唯一限制可能是一個好主意。這些關係由記錄在Certificate表中的功能依賴項Certificate_Number -> Employee_IDCertificate_Number -> Course_ID表示。

您也可以將其保留爲關聯實體並使用(Employee_ID, Course_ID)作爲主鍵,並使Certificate_Number成爲常規屬性,儘管受到唯一約束(並且可能是自動遞增的)。在這種情況下,該圖看起來像你的第一個,但是關係上有一個額外的屬性。