数据库表设计问题!(如何设计合理)
我现有一个数据采集程序A,每分钟生成一条数据,也可以人工补填(停电),数据根据采集的参数值判断天加的数据状态,然后再有一个数据筛查程序B对采集的数据进行资料补充,还有一个统计程序C对采集和补充的数据统计等。
A 程序主要涉及表为
a_DATA_In 采集数据存储表
a_TDD_User 数据字典 采集人员表
a_TDD_Site 数据字典 采集地点表
a_TDD_Type 数据字典 采集类型表
B程序主要涉及表为
b_Data_In2 采集处理数据存储表
---------------------
a_DATA_In 采集数据存储表
id
no
datatime
value1
value2
value3
value4
userID 外键 采集人员表
userID2 外键 采集人员表
siteID 外键 采集地点表
typeID 外键 采集类型表
in2ID 外键 采集处理数据存储表 未处理为空
state
Source
---------------------
a_DATA_In2 采集处理数据存储表
id
no
datatime
value1
value2
value3
value4
--------------------------
在程序B运行是,每处理一条数据,就生成一条处理数据,并修改被处理数据数据参数值。
例:a_DATA_In 采集数据存储表
id 1
no 20150101
datatime 2015-1-1 01:01:01
value1 1
value2 2
value3 3
value4 4
userID 001 外键 采集人员表
userID2 002 外键 采集人员表
siteID s001 外键 采集地点表
typeID t001 外键 采集类型表
in2ID null 外键 处理数据ID 未处理为空
state 异常
Source 人工录入
-----------------------
如何次异常数据被处理
id 1
no 20150101
datatime 2015-1-1 01:01:01
value1 1
value2 2
value3 3
value4 4
userID 001 外键 采集人员表
userID2 002 外键 采集人员表
siteID s001 外键 采集地点表
typeID t001 外键 采集类型表
in2ID null --> p001 外键 处理数据ID
state 异常 --> 异常已处理
Source 人工录入
-------------------------
那么我在程序C中要统计多少异常已处理,直接判断in2ID 不为空即可。而且基础数据采集的值不会改变,只有状态和处理ID会改变。
-----------------------------------------------
目前遇到问题,我的数据都在本地数据库,现在要把数据上传到中心机房,而我的采集端很多,采集数据量也很大,为了后续的统计和上传方便,我要如何设计更加合理。还有一个问题,比如采集数据已经上传,但是处理数据才进行处理把采集数据状态变了那么还涉及到重新上传以修改的数据修改中心数据库的数据问题,寻求好的设计方案!
---------------------------