求教多表数据之间的逻辑关系

wangliuwei1987 2010-07-26 12:46:08
我想创建两个数据表,表A保存年,月,日的数据,
表B保存年,月的数据,当获得2010/07/28当天的数据时,数据保存到表A中,同时表B也要更新统计7月份这条数据的总和,
逻辑上怎么实现这样的关系。
...全文
99 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
CunningBoy 2010-07-26
  • 打赏
  • 举报
回复
用触发器
床上等您 2010-07-26
  • 打赏
  • 举报
回复
这个没必要吧,一个表就行了。

你的另一个表只是做一个汇总而己,需要时再 sum 来汇总也行啊。

如果非要两个表,
那就更新一个表同时,再更新另一个总表。可以用事务来实现。
  • 打赏
  • 举报
回复
逻辑上 视图可以做 取的时候 根据年和月来取出数据 否则就直接根据年月日来取出原表而不是视图表的数据
非要做的话 就像3楼那样 触发器 A表更新 则B表也可以增删改
helloyou0 2010-07-26
  • 打赏
  • 举报
回复
1)5楼(4楼)
2)1楼
3)2楼

如果表B无需实时,可以定时更新
gumwzg 2010-07-26
  • 打赏
  • 举报
回复
一个表存所有数据,
然后在根据你想要的数据,创建一个视图


CREATE
/*[ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
[DEFINER = { user | CURRENT_USER }]
[SQL SECURITY { DEFINER | INVOKER }]*/
VIEW `dbbase`.`viewname`
AS
(SELECT * FROM ...)
Dleno 2010-07-26
  • 打赏
  • 举报
回复
日:
select sum(data) from table where y='$y' and m='$m' and d='$d'

月:
select sum(data) from table where y='$y' and m='$m'
年:
select sum(data) from table where y='$y'

一个表就可以了
CunningBoy 2010-07-26
  • 打赏
  • 举报
回复
类似下面这样的触发器:
create trigger updateDate
after insert on A
for each row
begin
update B
set `总和字段` = (select count(`数据`) from A where F_Month='七月');
end


或者你也可以在程序中实现,一插入数据同时更新B表,不过触发器的效率会高。

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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