数据库设计可以进行多次迭代测量

时间:2010-05-12 09:32:09

标签: sql database-design sqlite

我是sqlite和SQL的新手。我很想从平面文件切换到sqlite来保存一些测量信息。我需要一个关于如何更好地布局数据库的提示,因为我没有这方面的经验。

我有一个~10000个唯一的统计计数器,在每次测试迭代之前和之后收集。最大迭代次数为10次,但可能更少。

我在考虑以下事项:

CREATE TABLE stat_names(stat_id, stat_name);
CREATE TABLE stats_per_iteration(stat_id, before_iter_1, after_iter_1, before_iter_2, after_iter_2, ...);

stat_names表将保存完整计数器到uniq stat_id的映射。 stats_per_iteration表将保存测量数据1 + 10 * 2列。 stat_names.stat_id = stats_per_iteration.stat_id

或许我应该为每次迭代都有一个单独的表?这将导致数据库中的1 + 10个表。

谢谢!

2 个答案:

答案 0 :(得分:1)

这可能会让你入门。您的 stat_names 称为度量 stats_per_iteration 将是 Iteration 表。 测试表将为每个测试执行一个条目 - 例如新设备,新日等。

test_stats_model_01

答案 1 :(得分:0)

这实际上取决于您的需求,而您的问题并没有解决这些需求。在设计表时,请查看这些因素,没有特别的顺序:

  • 您将如何编写数据
  • 您将如何阅读数据
  • 将空间问题

这些可以确定它们的重要性顺序:

  • 您会阅读多少次数据,很多次?
  • 您需要以高频率进行写入吗?
  • 您的阅读查询有多复杂?
  • 数据是否适合您所拥有的空间?

在此基础上,设计您的结构,让您的生活更轻松。一般来说:

  • 如果您没有空间存放它,请将其设计为适合
  • 如果您需要快速写入,请对其进行设计,以便快速输出多行(简单的平面设计)
  • 如果你必须经常操作和分析数据,请以一种简单的方式存储它。