【问题标题】:SQL Database design to check data field out of specificationSQL 数据库设计以检查数据字段是否超出规范
【发布时间】:2018-03-23 13:54:15
【问题描述】:

我有一个表格存储测量记录,例如温度、压力、流量等。每个实体都按日期和位置记录。例如:

id、日期、位置、温度、压力、流量……

每次测量都有自己的规范,例如温度测量值应在20到35之间,否则,记录的温度值被认为是不规范的。

有许多不同的位置,并且对于每个位置,每个测量数据的规格(数据范围)都不同。例如,Location_1 的温度范围:20-35,Location_2 的温度范围:15-30。

需要能够根据不同的位置统计每个测量数据有多少条记录超出规格。我决定建立一个规格表。像这样:

id、measurement_name、位置、minimum_specs、maximum_specs、 标称规格,....

我的第一个问题是如何创建SQL语句自动链接这两个表,检查规格,然后得出计数结果? 第二个问题,根据我的需要,还有什么更好的解决方案?

【问题讨论】:

  • 这总是范围限制吗?请edit您的问题并添加一些sample data 和基于该数据的预期输出。 Formatted textno screen shots。 (edit 您的问题 - 在 cmets 中邮政编码或其他信息)
  • 您是说要先验证数据,看是否可以插入或更新,还是应该存储所有数据,然后使用第二张表报告数据的质量?跨度>
  • 如何创建 SQL 语句以自动链接这两个表 - 这称为join 根据我的需要,还有什么更好的解决方案。如果有很多数据,您可以使用所有“大数据”并存储这是一个不同的数据存储并针对它运行 R 或 python。

标签: sql database-design


【解决方案1】:

如果您在数据库设计中遇到问题,我建议您的实体如下

记录

  record_id int auto_increment primary key 
  record_date date
  Location_id foreign key

地点

Location_id int auto_increment primary key
Location_name varchar(255)
Temp_Id  foreign Key
Pressure_Id  foreign Key

温度

  Temp_Id int auto_increment primary key 
  Temp_min_val int 
  Temp_max_val int

压力

  Pressure_id int auto_increment primary key 
  Pressure_min_val int 
  Pressure_max_val int

我不知道你的数据库服务器引擎,所以我不能为你提供sql语句

【讨论】:

  • 如果对你有帮助请不要忘记标记我的回答
最近更新 更多