寻求设计思路!!请老师指点一下!(SOS!)

duangexin521 2010-03-16 10:04:38
CREATE TABLE tillball (
XChipNumber varchar(50),
XClassNumber varchar(50),
XTillBallResult int(50),
)

XChipNumber XClassNumber XTillBallResult
01 1111 1
01 1111 3
02 2222 5
02 2222 7

CREATE TABLE head (
ZChipNumber varchar(50)
ZClassNumber varchar(50)
ZHeadResult int(50)
)

ZChipNumber ZClassNumber ZHeadResult
01 1111 8
01 1111 9
02 2222 10
02 2222 11

CREATE TABLE lead (
YChipNumber varchar(50),
YClassNumber varchar(50),
YLeadResult int(50),
)

YChipNumber YClassNumber YLeadResult
01 1111 20
01 1111 21
02 2222 22
02 2222 23

总表
CREATE TABLE testresult (
ChipNumber varchar(50),
ClassNumber varchar(50),
CheckHead int(50),
CheckTillBall int(50),
CheckLead int(50),
)
总表所得值
ChipNumber ClassNumber CheckHead CheckTillBall CheckLead
01 1111 17 4 41
02 2222 21 12 45

比如查询前面3个表主键值= 01的相关列求和,并将和值插入总表对应列。
比如tillball表,XChipNumber=01,对XTillBallResult求和=1 +3 =4
head表中,ZChipNumber=01,对ZHeadResult求和=8 + 9 =17
Lead表中,YChipNumber=01,对YLeadResult 求和=20 + 21=41

现在这个总表的sql语句语句写完,现在关键的一个流程不知道如何设计?

3个表中的XChipNumber、XClassNumber 这2项是从界面上输入的,所以3个表前面的2项值是相同的。

每个表中的XTillBallResult、ZHeadResult 、YLeadResult 都是实时检测芯片得到的结果。

现在遇到一个困惑的问题:就是总表testresult的统计按照什么来生成?我开始的思路是当软件没有检测

时用一个按钮来控制统计,但是考虑到如果数据量很多的时候重新统计的话那速度会很慢?此时思路陷入

停顿,请老师指点一下。PS:总表testresult中ChipNumber是唯一的,是根据统计3个表得到的结果。


...全文
109 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
duangexin521 2010-03-16
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 acmain_chm 的回复:]
MySQL官方文档 http://dev.mysql.com/doc/refman/5.1/zh/index.html
[/Quote]

无法打开?

3。如果统计表的使用频率不高,比较一小时使用一次,则安排一个定时任务,第小时刷一下这个总表

老师,你说的定时执行mysql数据库..这个方法是时刻定时更新数据库总表testresult,但是我有一个

疑问,因为我这个总表是根据前面3个表得到的数据,那请问我这个总表数据的生成语句最好放在哪里执行呢》?
ACMAIN_CHM 2010-03-16
  • 打赏
  • 举报
回复
duangexin521 2010-03-16
  • 打赏
  • 举报
回复
定时任务怎么安排?http://topic.csdn.net/u/20091020/22/c51bb709-6dbc-4fd1-b874-077714ed547e.html
,另征集定时执行mysql数据库..

at 02:00 /every:M,T,W,Th,F,S,Su "C:\Program Files\MySQL\MySQL Server 5.1\bin\mysql.exe" -u root -p123 csdn -e "delete from t where ptime<date_sub(curdate(),interval 3 day)"
Added a new job with job ID = 1

请教一下老师这句话中/every:M,T,W,Th,F,S,Su这个是什么意思?
-p123 csdn -e 代表什么意思?
delete from t where ptime<date_sub(curdate(),interval 3 day)"
Added a new job with job ID = 1
这句话怎么理解?我如果想要修改怎么修改?


以前的ChipNumber统计过,怎么去掉统计以前的,也就是说只统计最新的数据。
想办法找出确定新旧的方法,比如时间?序列号等。
ChipNumber是从界面上输入的,也就是说每统计完一批次就换一个序列号。
ACMAIN_CHM 2010-03-16
  • 打赏
  • 举报
回复
定时任务怎么安排?

http://topic.csdn.net/u/20091020/22/c51bb709-6dbc-4fd1-b874-077714ed547e.html
,另征集定时执行mysql数据库..

以前的ChipNumber统计过,怎么补去统计以前的,也就是说只统计最新的数据。
想办法找出确定新旧的方法,比如时间?序列号等。
duangexin521 2010-03-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 acmain_chm 的回复:]
实际中的一个SPC系统的设计

测试数据表(测试参数ID,产品批号,测量序号,测量值,时间)

BALL, AK4712345,1, 0.56, 2009-10-11 11:11:11
BALL, AK4712345,2, 0.57, 2009-10-11 11:11:12
...

结果是直接使用查询SELECT生成,没有总表。 不过数据库是ORALCE的。
[/Quote]

不生成总表怎么来对其得到的数据进行第2次的查询操作?listctrl的数据绑定。。。。。

最终我要根据对总表的结果进行查询的结果导出到excel中。(这步我已经实现)
duangexin521 2010-03-16
  • 打赏
  • 举报
回复
一般有如下几种方案,视具体情况而定。

1。 直接使用视图,也就是SELECT查询语句,也就是说不存在这个总表。 这点可能行不通,因为我要对总表进行相应的查询操作的。

2。如果直接SELECT上速度不满足要求,则可以考虑用触发器来实现,在几个参数表中加上触发器去更新这张统计表。如果插入数据频繁,则会影响到效率。 总表应该不会时刻插入,应该等一段时间插入。

3。如果统计表的使用频率不高,比较一小时使用一次,则安排一个定时任务,第小时刷一下这个总表。
老师统计表使用的频率不高,一般1小时使用一次,也就是说可能一天统计完了,对3个表进行统计成总表,接着对总表进行相应的一些查询操作,请问老师定时任务怎么安排?另外以前的ChipNumber统计过,怎么补去统计以前的,也就是说只统计最新的数据。
ACMAIN_CHM 2010-03-16
  • 打赏
  • 举报
回复
实际中的一个SPC系统的设计

测试数据表(测试参数ID,产品批号,测量序号,测量值,时间)

BALL, AK4712345,1, 0.56, 2009-10-11 11:11:11
BALL, AK4712345,2, 0.57, 2009-10-11 11:11:12
...


结果是直接使用查询SELECT生成,没有总表。 不过数据库是ORALCE的。
ACMAIN_CHM 2010-03-16
  • 打赏
  • 举报
回复
一般有如下几种方案,视具体情况而定。

1。 直接使用视图,也就是SELECT查询语句,也就是说不存在这个总表。
2。如果直接SELECT上速度不满足要求,则可以考虑用触发器来实现,在几个参数表中加上触发器去更新这张统计表。如果插入数据频繁,则会影响到效率。
3。如果统计表的使用频率不高,比较一小时使用一次,则安排一个定时任务,第小时刷一下这个总表。
duangexin521 2010-03-16
  • 打赏
  • 举报
回复
麻烦老师再指点一下:定时任务在参考手册哪里?

另外这个总表是根据前面3个表得到的数据,那请问我这个总表数据的生成语句最好放在哪里执行呢》?

谢谢了。

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧