2017-05-03 32 views
0

我需要一個表來存儲測試類型。我已經提供了兩個Excel電子表格,一個用於微生物測試,一個用於病原體。微生物有5個柱子,病原體有10個。這5個柱子都在兩個表格中。所以有5個額外的列。最佳實踐 - 我應該爲兩組相似的數據創建一個表還是兩個表?

只給你一個想法,表列會是這樣的:

**Microbial** 

Test  Method IncubationStage1 



**Pathogens** 

Test  Method IncubationStage1 IncubationStage2 Enrichment 

所以它是更好地對微生物一個桌子和一個病原體,或更好地對測試一個表並且都有它?在桌子上有微生物是不好的,我知道只有一半的柱子會被利用?或者是將相關的項目保存在同一個表格中,並將它們分隔「類型」列?

很明顯,兩者都能正常工作,但我想知道哪個更好。

+1

你會得到什麼其他類型的測試,他們會是什麼樣子?你應該想出一個數據庫來「模擬」你的過程。例如我注意到你有'incubstage2'。你會有孵化場嗎? STAGE4?微生物是否會進行孵化或濃縮?如果你不知道,也沒有時間和手段來正確分析,那麼你總是可以選擇'ODS'或'Data Lake'路線,這意味着要爲每個文件類型創建一個表格,以便對其進行適當的建模當你知道更多關於源數據/過程的信息 –

+0

這些目前是他們如何做測試並且已經很長時間了,但是我不排除將來會有更多的測試。我會考慮ODS和Data Lake,謝謝Nick。 –

+0

除非您正在考慮數據倉庫和決策支持,否則不要過於擔心ODS和Data Lake。它們只是數據存儲類型的名稱,不需要進行任何建模,它們只是匹配輸入數據。 –

回答

4

這些問題的答案總是「取決於」。

對於我的觀點,如果您認爲您會想要通過測試或跨病原或微生物類型的方法來彙總數據,那麼您肯定應該將數據放在同一個表格中,並附加一列來區分它們。

您也可以潛在更好的「正常化」你的表是這樣的:

Table1: ExperimentID_PK  ExperimentTypeID_FK Test Method 
Table2: MeasurementRecordID_PK ExperimentID_FK Timestamp Other metadata about the record 
Table3 MeasurementID_PK  MeasurementTypeID_FK MeasurementValue MeasurementRecordID_FK 
Table4: MeasurmentTypeId_PK Metadata About Measurement Types 
Table5: ExperimentTypeId_PK Metadata About Experiment Types 

...,所有的葉數據元素指回通過外鍵父的數據元素,然後你」 d在SQL語句中將數據連接在一起,根據您希望查詢的類型應用索引以獲得最佳性能。很顯然,問題中的一行最終會在此模式中的多個表中顯示爲多行,並且只有在查詢時纔可以將它們重新組合爲單獨的行(例如由MeasurementRecordID綁定)。

但也有其他的模式,在無SQL的土地規範化可以成爲敵人。如果存儲在更臃腫的格式中以使查詢結構更加明顯,則切片和切塊數據集在某些域中變得更容易。所以這有點歸結爲你的用例思考。

+0

我同意,特別是對你最後一句話 - 思考你的用例。詢問您可能期望的其他類型的文件。 –

+0

感謝您深思熟慮的答案vicatcu。 –

相關問題