我正在设计一个数据库来记录实验结果。基本上,一个实验有多个输入参数和一个输出响应。因此,数据表如下所示:
run_id parameter_1 parameter_2 .parameter_n响应
1.
2.
。。。
但是,这个表的结构不是行列式,因为不同的实验有不同的列数。那么问题是:当用户实例化一个实验时,动态地动态创建数据表是个好主意吗?否则,什么是优雅的解决方案呢?谢谢。
发布于 2016-05-15 21:44:26
当我发现自己试图在运行时动态创建表时,这通常意味着我需要另一个表来解决实体之间的关系。简而言之,我建议将输入参数作为一个单独的实体来处理,并将它们存储在一个单独的表中。
听起来你们的实体是:
各实体之间的关系是:
最后一个关系需要一个额外的表来解决。您可以有一个单独的表来存储您的输入参数,并将输入参数与run_id
相关联。这张桌子看起来可能是:
run_parameter_id ... run_id_fk ... parameter_keyword ... parameter_value
其中,run_id_fk
是Run表中相应行的外键(在您的问题中描述)。parameter_keyword
只是用来跟踪参数的名称(parameter_1_exp1
、parameter_2_exp1
等)。
您从数据库中读取/写入的查询现在变得更加复杂(需要连接),但不再依赖动态创建表。
如果不清楚,请告诉我,我可以提供一个潜在的数据库图表。
https://stackoverflow.com/questions/37245427
复制相似问题