Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 我应该有一个数据库还是多个?_Mysql_Database Design - Fatal编程技术网

Mysql 我应该有一个数据库还是多个?

Mysql 我应该有一个数据库还是多个?,mysql,database-design,Mysql,Database Design,我想对一台设备进行多次测试并记录结果 每次运行将包括 开始时间戳 结束时间戳 用户提供的测试运行的文本描述 以1秒为间隔从各种测量设备上采集的测量数据的集合 问:我曾想过为每个测试运行创建一个数据库(因为度量表将有多个特定于该运行的行,否则我将不得不添加一个额外的列作为索引) 我使用多个数据库是正确的,还是有更好的方法使用单个数据库?如果你不得不问,答案总是一个 如果您需要不止一个数据库,您就不会问这个问题,因为您已经超越了需要多个数据库的想法,而知道自己需要多个数据库 您需要重点关注的是创

我想对一台设备进行多次测试并记录结果

每次运行将包括

  • 开始时间戳
  • 结束时间戳
  • 用户提供的测试运行的文本描述
  • 以1秒为间隔从各种测量设备上采集的测量数据的集合
问:我曾想过为每个测试运行创建一个数据库(因为度量表将有多个特定于该运行的行,否则我将不得不添加一个额外的列作为索引)


我使用多个数据库是正确的,还是有更好的方法使用单个数据库?

如果你不得不问,答案总是一个

如果您需要不止一个数据库,您就不会问这个问题,因为您已经超越了需要多个数据库的想法,而知道自己需要多个数据库


您需要重点关注的是创建一个简单的模式,该模式可以处理您想要的内容,并正确索引,以便快速查询。

使用一个数据库。在测量值表中,添加一个带有
run\u id
的字段,指定特定的运行

下面的示例-根据您的需要,您的字段类型可能会有所不同

CREATE TABLE IF NOT EXISTS measurements
(
    measurement_id INT NOT NULL AUTO_INCREMENT,
    run_id INT,
    start_time INT,
    stop_time INT,
    description VARCHAR(255),
    PRIMARY KEY (measurement_id)
);

CREATE TABLE IF NOT EXISTS runs
(
    run_id INT NOT NULL AUTO_INCREMENT,
    description VARCHAR(255),
    PRIMARY KEY (run_id)
);

如果您正在寻找建议,则需要使用单个数据库。就易用性而言,它将帮助您实现可扩展性和维护。使用多个DBs/Schema将在稍后阶段带来麻烦。不过,这只是一个建议

为什么??你能解释一下吗?那么如何最好地构建单个数据库呢?您的问题几乎已经得到了答案。什么列类型适用于您正在收集的每一位数据?将它们与特定运行的标识符组合在一起,为其创建一个表,就基本完成了。这里是DB101。不要把它复杂化,我可能会把它变成一个整数。如果您想要一个描述,那么您应该用字段
run\u id
description
或类似的内容创建另一个表。是的-有几十个度量值的表应该有一个唯一的
measurement\u id
字段和一个(非唯一的)
run\u id
字段,两者都是整数。该表的主要索引是
measurement\u id
字段。您可能有更多的字段,或者可能需要更改字段类型,但这应该会给您一个想法。如果
run\u id
的类型为
notnull AUTO\u INCREMENT PRIMARY
,这会很好,以避免手动生成它们。对于
测量值
表也是如此。为了更全面,您还需要
运行id
上的索引,以便
测量值
不会一直进行狗式慢速表扫描。