2010-07-14 48 views
0

如何最好地在關係數據庫中表示這種類型的數據?此數據的正常設計

  1. 有一個可變數量的特定機器,每個機器都由製造商唯一序列化。

  2. 每臺機器都將由用戶設置,以執行該類型機器可以執行的可變數量的任務。

  3. 所有機器都來自其自身可以改變 隨着時間的推移

  4. 最後每個任務都會有一個時間設置,這將改變從一臺機器到另一個相同的任務列表中選擇。

最後的情況似乎弄亂了我對這個規範化的嘗試。

+0

只有一種機器類型還是有幾種?如果有幾個,不同的機器類型共享一些任務? – 2010-07-14 22:08:07

+0

只有一種機器類型,但有些具有較高的規格,但有時會設置一些高規格來執行可能任務的一個子集 – bosco 2010-07-14 22:10:34

+0

因此,幾臺機器都屬於同一類型。一套任務,但每臺機器只能執行所有任務的一個子集。對於每臺機器,機器理論上可以執行的任務的一個子集實際上是預定的。正確? – 2010-07-14 22:15:49

回答

2

機器 ::編號,序列號

編號是主鍵。

任務 :: ID,描述

Id是主鍵。

MachineTasks ::設備ID,的TaskID

設備ID和的TaskID是複合主鍵。 MachineId是一個引用Machines.Id的外鍵。 TaskId是引用Tasks.Id的外鍵。

ScheduledMachineTasks ::設備ID,的TaskID,時間

設備ID和的TaskID是複合主鍵。 MachineId和TaskId是引用MachineTasks.MachineId和MachineTasks.TaskId的複合外鍵。

請注意,這將只允許每臺計算機僅安排一次任務,並且如果每臺計算機可以安排多次計劃一項任務,則需要進一步擴展。

+0

Durilai和你自己都給出了非常相似的答案,但我會選擇你的答案作爲你接受的答案,因爲你給了很多解釋性的信息,謝謝你的時間和知識 – bosco 2010-07-14 22:42:14

1

創建一個公共表格,將每個對象與這些補充數據相互關聯起來。

機牀工作臺
ID,設備ID

任務表
ID,任務

MACHINETASK TABLE
ID,機號(FK到MACHINE.ID)的TaskID(FK到TASK.ID),時間

+0

謝謝,這看起來很有趣 – bosco 2010-07-14 22:19:19

+0

我唯一的問題是時間字段。它是由用戶,參考表等輸入的? – 2010-07-14 22:27:45

+0

它是由用戶輸入的,取決於他們希望獲得的產品的質量 – bosco 2010-07-14 22:32:38