2011-04-25 49 views
3

我有以下問題:ER建模問題

只使用二元關係,爲下面的描述構造一個實體關係圖。包括實體標籤,主鍵字段,關係標籤和關係的多重性。 「

」一家公司運行着多個汽車修理和服務車庫,每個車庫都有自己的唯一編號(gargNo)。當車主聯繫車庫時,他們的詳細信息會被記錄下來,並被分配給車主否,他們的車也會註冊該車庫被分配了一個參考號碼(車號),車主可以擁有一輛或多輛車,但一輛車只能在一個車庫註冊,當一輛車被預訂到車庫時,就會爲其制定服務計劃。服務計劃對於特定的汽車來說可能是獨一無二的(例如,治癒吱吱聲的擋風玻璃刮水器),或者它可能是用於許多汽車的服務計劃(例如標準的60000英里服務)任何服務計劃可以包括一個或多個操作(更改機油,拆卸雨刮電機等),每種服務計劃的操作類型都有一個唯一的編號(operationNo)

這就是我的回答:

enter image description here

所有數據庫的老兵,這看起來好給你?

而且任何其他意見反饋,將不勝感激......

不HOMEWORK

編輯 - 人爲什麼要繼續編輯職位,但作出任何改變?

回答

1

單憑完全是靠給出的要求,不顧一切可能的現實世界的併發症(如當老闆從一個汽車移動他們的汽車服務到另一個會發生什麼):

我就離開了公司。這裏只提到過,並沒有說明我們正在爲多家公司錄製數據。

車主和車庫之間的關係是通過汽車。車主和車庫之間沒有直接關係。 (鑑於多個車庫,確保一個給定的多車主出現一次在系統中執行將會非常棘手。)

汽車和車庫之間的關係或許應該「註冊」。嚴格的閱讀意味着車主在與車主聯繫時與車庫聯繫起來,而不是進入服務區。

您需要實體ServicePlanType [SPT]。大多數SPT是預先定義的,多輛車將使用特定的SPT(60,000英里的調整)。如果,如果,並根據需要添加其他SPT。可以爲「標準」和「特設」子類型進行爭論,但我認爲他們會非常相似(基於操作),這不是必需的。然後:

  • 服務計劃涉及到一輛車,和一個服務計劃類型
  • 服務計劃涉及到一個服務計劃類型
  • 服務計劃類型涉及到零個或多個服務計劃(標準計劃清單)
  • 服務計劃類型涉及一個或多個操作(所有的操作都必須定義)

操作可以涉及零種或多個服務計劃類型。鑑於對臨時服務計劃的需要,可能需要最初不屬於任何特定服務計劃的操作。 (也可以根據需要添加,這可能是可以接受的,我姐姐的沙鼠在學校回家的路上逃脫了一次,他們不得不拆掉部分車子把它拿出來,不收費,也許他們沒有「提取沙鼠」在他們的數據庫中。)(我不這樣做。)

我不會涉及sevice計劃類型或操作與車庫。據推測,如果公司的一個車庫可以做到,他們應該都可以做到,即使是臨時的車庫也行。

您不需要將服務計劃與車庫聯繫起來,因爲服務計劃所用的車輛與車庫有關。有了這些說明,在物理實施的時候這樣做可能會很好。另外,如果一輛汽車後來被帶入第二個車庫,汽車與車庫之間的關係會發生變化,並且沒有服務計劃與車庫的關係,那麼您將失去跟前工作的人的蹤跡。正確地說,我認爲你應該將歐文模型化爲汽車服務計劃,但他們專門闡述了「汽車到車庫」。提出這些問題,看看企業主說什麼。

0

基於問題的陳述,我想出了以下內容:

enter image description here

我用如地址,OwnerDetails等,爲簡單起見通用領域。

編輯:很多之間的服務計劃和操作的許多解釋:

的操作「換油」,是服務計劃的「30K維護」的一部分,「60K維護」和「換油」 。

當然,對於「30K維護」和「60K維護」的服務計劃有多個操作(更換機油,加註制動液,檢查輪胎壓力,平衡和旋轉輪胎)。

因此,服務計劃和操作之間的關係是多對多的關係。

該結構是一個可以應用於VehicleService實例的模板。

+0

我錯過了在服務計劃和操作之間多對多的需求。但我仍然認爲需要有某種形式的服務計劃模板,允許服務計劃重用,而不是每一個新進入vehicleService重新定義。 – 2011-04-26 22:01:56

+0

@Philip凱利:回答編輯 – 2011-04-27 11:06:29