想要的数据库设计建议:双数据输入

时间:2010-05-27 20:33:51

标签: java database-design grails

我正在设计一个用于捕获临床试验数据的数据库。数据由两个人独立输入两次,结果必须匹配。用于获得最佳结果的最佳数据库工具是什么。任何人都有类似的经历吗?

非常感谢您的帮助。

感谢。

4 个答案:

答案 0 :(得分: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

然后我得出结论,有一个叫做“Datapoint”的东西包含了字段

-- 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)

答案 1 :(得分:1)

(我还不能添加评论......)添加Zak的答案,如果对有多少人输入这些值有任何疑问(比如它从两个跳到三个,就像Zak说的那样)我会打破数据条目1和2(都是dataPointID)到另一个包含两列的表中:

--data trial id
--data entry id

这样,理论上你可以拥有尽可能多的不同用户 插入数据,然后数据试用表将只包含有关试验的元数据,而不是“业务逻辑”,每次试验只有2个数据条目。

如果不同的试验包含不同数量的数据值,则可以使用类似的设置。

答案 2 :(得分:0)

如果您正在寻找一个好的数据库工具,您应该考虑使用实体关系设计器来建模您的数据库,例如Case Studio或Embarcadero ER / Studio。

答案 3 :(得分:0)

数据库并非旨在解决此问题。双重输入是一个应用程序问题,违反了规范化。我将实现一个验证字段,以指示数据已经过验证,以及是否失败。我可能会包含一个包含输入的每组条目的审核表。

应用程序需要查找函数来确定这是第一个条目还是后续条目。有许多与此相关的设计问题。

  • 验证无法找到第一个条目。
  • 如果数据与验证不匹配,如何更正数据。
  • 如何处理应验证的未验证数据。