2009-11-25 73 views
0

我有一個現有的數據庫,需要做一些改變。我需要決定是否改變一個表來記錄額外的數據,或使用現有的表已經記錄了數據的一個單獨的測試,並將其鏈接到新表中的其他表。修改表VS新表的外鍵

現有:

tSubTest(ixSubTest (pk), ixTest (fk)) 
tPressureVolume(ixPressureVolume (pk), ixSubTest (fk), ...data fields 1...) 
tMotorData(ixMotorData (pk), ixSubTest (fk), ...data fields2...) 

選項1:

tSubTest(ixSubTest (pk), ixTest (fk)) 
tPressureVolume(ixPressureVolume (pk), ixSubTest (fk), ...data fields 1...) 
tMotorData(ixMotorData (pk), ixSubTest (fk), ...data fields2..., ...data fields 1...) 

選項2:

tSubTest(ixSubTest (pk), ixTest (fk)) 
tPressureVolume(ixPressureVolume (pk), ixSubTest (fk), ...data fields 1...) 
tMotorData(ixMotorData (pk), ixSubTest (fk), ...data fields2...) 
tMDPVLink(ixMDPVLink (pk), ixMotorData (fk), ixPressureVolume (fk)) 

基本上它是工作的方式是有一個測試在檢查壓力體積一次測試序列的開始。現在他們希望每五分鐘記錄一次電子數據。他們仍將執行初始壓力容量測試。

+0

我不明白你的......數據字段2 ......數據字段1 ......術語 – 2009-11-25 18:47:29

+0

我簡單地縮寫了所有的實際數據字段。 '...數據字段1 ...'有六個字段,'...數據字段2 ...'有十幾個字段。 基本上我的意思是追加數據字段從tPressureVolume tMotorData – Tanj 2009-11-25 19:33:50

+0

這是一個泵+ E1。發動機? tMotorData包含el。來自電機的數據,而tPressureVolume描述了泵?估計實體應該能夠「可視化」對象 - 做解釋。 – 2009-11-25 21:10:31

回答

2

我有一個現有的數據庫,需要 做了一些更改。我需要決定 是否更改表以記錄 額外數據或使用已存在的表 ,該表已將該數據記錄爲 單獨測試,並使用新表將其鏈接到其他 表。

我不會把一些東西放在一個單獨的表中,只是基於它在項目後期被添加的事實。

儘量保持信息一起屬於一起的那些位 - >我寧願更新與一個額外的列或兩個現有的表,不是創建一個人造的,新的「鏈接」表。

這條規則的唯一例外情況可能是,如果您有大量構成邏輯實體的列(例如:10個或更多),並且這些列在您的業務案例中只會出現少於10%的情況。

例如如果你有一個特定類型的客戶,其需要大量的額外字段的,但是這真的只是客戶的少數(如您的「黃金」客戶),那麼它可能是更好地把這些數據的「集羣」到一個單獨的表將它連接起來 - 因爲否則對於絕大多數的數據庫實體來說,一大堆字段都是空的(NULL)。

希望有點幫助 - 只是我自己的2美分;-)在一個表中

+0

我與馬克 - 如果它純粹是向現有列添加列的問題,然後添加列作爲長期任何事情會導致你痛苦。唯一的問題將填充現有數據的新列。 – Murph 2009-11-25 21:12:47

1

如果所有的數據(電機+水泵),同時進行採樣,把所有的東西,像這樣:

pump_model_02

如果壓力/體積從電機數據獨立地取樣,使用:

pump_model_03