我正在设计一个数据库来记录实验结果。基本上,一个实验有几个输入参数和一个输出响应。因此,数据表将如下所示:
run_id parameter_1 parameter_2 ... parameter_n 响应
1………………
2………………
. . .
然而,这个表的结构不是决定性的,因为不同的实验有不同的列数。那么问题来了:当用户实例化一个实验时,动态创建数据表是个好主意吗?否则,什么是优雅的解决方案?谢谢。
我正在设计一个数据库来记录实验结果。基本上,一个实验有几个输入参数和一个输出响应。因此,数据表将如下所示:
run_id parameter_1 parameter_2 ... parameter_n 响应
1………………
2………………
. . .
然而,这个表的结构不是决定性的,因为不同的实验有不同的列数。那么问题来了:当用户实例化一个实验时,动态创建数据表是个好主意吗?否则,什么是优雅的解决方案?谢谢。
当我发现自己尝试在运行时动态创建表时,通常意味着我需要另一个表来解决实体之间的关系。简而言之,我建议将您的输入参数视为一个单独的实体并将它们存储在一个单独的表中。
听起来您的实体是:
实体之间的关系是:
最后一个关系将需要一个额外的表来解决。您可以有一个单独的表来存储您的输入参数,并将输入参数与run_id
. 该表可能如下所示:
run_parameter_id ... run_id_fk ... parameter_keyword ... parameter_value
run_id_fk
Runs 表中适当行的外键在哪里(在您的问题中描述)。parameter_keyword
仅用于跟踪参数的名称(、parameter_1_exp1
等parameter_2_exp1
)。
您从数据库读取/写入的查询现在变得有点复杂(需要连接),但不再依赖于动态创建表。
如果不清楚,请告诉我,我可以提供一个潜在的数据库图。