2017-03-10 95 views
1

一個數據庫的ER圖如下所示:這兩個實體之間的關係是什麼?

ER Diagram

現在,什麼是飛機和航班實體之間的關係?

我會說一對多,但這是錯誤的,因爲雖然一架飛機可以有多個航班,但許多航班不能同時擁有一架(單機)飛機。

那麼,究竟是什麼關係?

我是新來的數據庫。請告訴我,如果我錯了。

回答

0

正如你所說的關係是一個一對多,因爲如果它是一個許多一對多關係就必須有這2個表(Tbl_Plane_Flight)之間的結合表,另一件事是, 航班表中引用了Plane_Id。

但必須有這個關係的驗證規則(或在航班表約束),該飛機不能有許多航班上同時

0

首先,你的圖是不是ER圖,這是一個表格圖。 ER圖必須能夠表示支持三元關係和更高關係,弱實體集和標識關係的ER模型,以及其他沒有表示法的概念。正確的ER圖符號通常被稱爲陳的符號。

現在,通過查找出現在同一個表中的實體域(標識實體集的列),ER關係很容易識別。這些通常由PK和/或FK表示,但不一定是。

當你有一個二進制的關係(在同一個表中的兩個實體域),看看唯一制約這些領域:

  • 一比一的關係需要兩個獨立的唯一約束,一個是每個域。

  • 一對多關係需要對多方域的唯一約束。

  • 多對多關係需要在兩個域中一起使用複合唯一約束。

一個一對多的關係可以規格化到的許多方面的實體的實體關係,由於關係所需要的唯一約束的實體關係的PK比賽。一對一關係可以非規範化爲任一實體關係。多對多關係需要一個複合關鍵字,並且必須表示爲單獨關係,因爲複合關鍵字不匹配任何實體關係的PK。

在您的例子,(flight_num, planeID)表示的關係,並且由於僅flight_num唯一約束(由於作爲flights關係的PK),這是一個多到一個關係:每個航班正好與一個平面相關聯,而每架飛機都可以參與多次飛行。

這裏有一個直觀的參考,其中唯一約束帶下劃線標出:

Binary relationship types

許多人仍然使用的術語和概念,從舊的網絡數據模型,如混爲一談與FK約束和實體集的關係與表(這就是爲什麼表圖往往被錯誤地稱爲ERD)。我強烈推薦閱讀Codd的論文「大型共享數據庫的數據關係模型」和Chen的論文「實體 - 關係模型 - 實現統一的數據視圖」。

相關問題