2010-05-27 69 views
4

我正在設計一個數據庫捕獲臨牀試驗數據。數據由兩個人獨立輸入兩次,結果必須匹配。什麼是最好的數據庫工具來實現最佳結果。任何人都有類似的經歷?數據庫設計建議想要:雙重數據輸入

您的幫助非常感謝。

謝謝。

+0

此問題與編程無關。可能這屬於superuser.com。 – 2010-05-27 20:46:11

回答

1

您是在設計一個數據庫,還是將數據輸入數據庫的應用程序?

如果你只是希望在數據庫中,我將捕獲的以下信息:

1) user A item X entered data 
2) user A userID 
3) user A intem X entered date/time 

4) user B item X entered data 
5) user B userID 
6) user B intem X entered date/time 

那麼我的結論是有包含的字段

-- entering userID 
-- entry date 
-- entry data (double value) 
I'd also assign it a unique ID for the entry 
--entryID (autoinc) 
一種叫做「數據點」

然後,我會指出,有一些所謂的「數據審判」有兩個的這些東西叫做「數據項」

如果我認爲這個數字條目每個數據審判可能是3次驗證,而不是2,我可能會改變我的設計,但一開始我想給我的「數據審判」的定義如下:

-- data trial name 
-- data trial creation date 
-- user creating data trial (userID) 
-- data entry 1 (dataPointID) 
-- data entry 2 (dataPointID) 
-- entries verified (boolean) 
and give each of these a unique ID also 
-- data trial ID (autoinc) 
+0

謝謝你的快速回答,Zak。回答你的問題:我正在設計整個數據庫。這意味着,我可以完全控制我想要使用的任何工具。此外,除了圖片中的2個數據錄入人員之外,還有另一層檢查:數據管理員負責處理結果以查找任何可能的問題並向所有相關方發送查詢。 – john 2010-05-27 20:54:38

+1

非常歡迎。這聽起來像你需要做一些事情:1)記錄將用於捕獲和驗證數據的過程,以及你可以進入的過程的各種狀態。 2)設計捕獲兩者的數據庫數據和過程的當前狀態(數據已經過驗證,是否返回給數據輸入人員等) 3)編寫一個快速應用程序(可能是基於Web的)以幫助用戶正確執行過程。您可以將Excel電子表格與相關字段交給他們,但這並不能真正實施這些標準。 – Zak 2010-05-27 21:01:39

0

如果你正在尋找一個良好的數據庫工具,您應該考慮使用實體關係設計器來建模您的數據庫,例如Case Studio或Embarcadero ER/Studio。

0

數據庫不是爲了解決這個問題而設計的。雙輸入是一個應用程序問題,違反標準化。我將執行一個驗證字段,以表明數據已經過驗證,並且是否失敗。我可能會包含一個包含每組輸入條目的審計表。

應用程序需要一個查找函數來確定這是第一個條目還是後續條目。有一些與此相關的設計問題。

  • 驗證無法找到第一個條目。
  • 如何糾正數據,如果它不符合驗證。
  • 如何處理應驗證的未驗證數據。
+1

雙入口不違反標準化。假設兩個條目是可識別的(通過用戶名?),那麼只要您避免非關鍵依賴關係,沒有理由爲什麼合適的設計不應該在BCNF/5NF中。 – sqlvogel 2010-05-27 21:14:39

+0

如果數據不一致,請考慮重複輸入。你是男性(入門1),女性(入門2)。您沒有unambiguos結果。主表不應該有這兩個值的列,這將違反標準格式。數據錄入歷史記錄將會是一個正常形式的有效弱表。 – BillThor 2010-05-28 21:32:19

1

(我不能添加評論...)添加到扎克的回答,如果有過多少人會進入這些值(說跳轉從兩到三個,像扎克說)我有任何疑問倒是打破了數據輸入1和2(兩者dataPointIDs)到另一個表中有兩列:

--data trial id 
--data entry id 

這樣理論上你就可以有許多不同的用戶 插入數據,然後將數據試用表將包含只有關於試驗的元數據,而不是「業務邏輯」,每個試驗只有2個數據條目。

如果不同的試驗包含不同數量的數據值,則可以使用類似的設置。