数据库的表设计简介

来源:未知 责任编辑:智问网络 发表时间:2013-09-02 11:55 点击:

   在数据库的表设计上,根据业务需求应充分考虑 核心表与外围表、配置表与事务表、日志表与日结表、实时表与历史表、事实表和维表等,兼顾数据的层次、安全、转移、清理、扩展等机制。下面举个实例简单说明下。
    需求介绍:用户打客服电话与座席通话结束后,系统对满足条件的通话记录下发满意度调查短信,共两次交互过程,即通话结束后系统下发第1条短信,用户第1次回复;系统根据用户回复的短信下发第2条短信,用户第2次回复;系统根据回复的第2条短信下发第3条短信,流程结束(当然你也可以1条都不回复,但并不影响数据的转移)。

  设计的部分对象见下:
  --核心表
  t_pub_commoninfo   --记录座席与用户通话信息
  t_pub_commoninfo_2 --结构同上,专门用于满意度调查
  --配置表
  t_scesmslot  --判断满意度调查的总开关表
  t_scesmscommandlist  -- 判断满意度调查地市开关表
  t_pub_citytelcode_night --夜间用的满意度调查地市表
  t_scesmspolicyset   --短信下发抽取策略表
  --事务表
  t_sms_commoninfo  --记录满足条件的满意度调查数据
  t_scesmsinfo    ---满意度的下发记录
  t_scesmsinfo_2  ---满意度的交互记录表
  --历史表
  t_scesmsinfohis  --满意度的历史数据表 
  --存储过程 
  P_scegetsmsinfo_new     --获取短信的存储过程                   
  P_SCESendSMSLog_new     --创建2,3条短信日志记录的存储过程      
  P_SCEReceiveSMSLog_new  --回收短信存储过程                     
  P_scesmstimeoutset      --超时时间设置存储过程                 
  P_scesmsinfo_transfer   --数据转移的存储过程                   
  P_scegetfirstsmsinfo    --获取第一条调查短信的存储过程         
  P_dz_scesmsinfohis      --转移数据到历史表的存储过程           

--数据的产生及转移流程:  
用户打客服电话---> ...---> 写数据到t_pub_commoninfo 
---> p_ag_neworupdatecommoninfo 取数据到 t_pub_commoninfo_2 
---> p_ag_SatisfactionResearch 取满足下发条件的数据到 t_sms_commoninfo 
---> p_scegetsmsinfo 取第1条短信下发数据加到 t_scesmsinfo 表
---> 短信发送后,通过 p_scesmsinfo_transfer 转移到 t_scesmsinfo_2 中(记录2次的交互记录)
---> 然后通过 p_dz_scesmsinfohis 再转移到 t_scesmsinfohis 中
---> 1年后的数据转到磁带库。
   此设计的优点:数据的转移层次分明、可以在表级实现I/O的部分分离、数据清理简单。缺点:代码复杂。

 

日志表与日结表:
   日志表不用说了,记录每天的业务数据,日结表就是对日志表的每天分类汇总。如果发现某天的日结有误,可以删除数据重新日结。备份时只需要备份日志表,可以节省时间和空间。在报表开发中大量使用。Oracle的试图 v$sqlarea 可以看作是对v$sql 的分类汇总。 

 

事实表和维表:
   常用于BI等分析系统中,但OLTP系统中照样可以使用。
例如,某客户公共信息表存放了大量的数据,某需求需要增加字段,按常规做法是修改表结构,但是这样做要同步修改大量的使用此表的相关代码,容易出错,如果表中有几千万的数据,半个小时都难编译成功,这样对于7 X 24小时系统会是什么影响啊。这种情况下如果把需要增加的字段设计为一个维表,岂不是更加方便,还符合了对表垂直分割的原则。

 

   上面的只是针对业务需求人为作出的划分,本质上都是基本表,没有什么实质的区别。

 

本文出自 “srsunbing” 博客,请务必保留此出处http://srsunbing.blog.51cto.com/3221858/1285401

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • Request.ServerVariables 参数大全
    • 执行全文索引时出现权限不足的解决方法
    • 导入excel文件处理流程节点的解决方案
    • 查看sql修改痕迹(SQL Change Tracking on Table)
    • App数据层设计及云存储使用指南
    • PostgreSQL启动过程中的那些事三:加载GUC参数
    • MongoDB安装为Windows服务方法与注意事项
    • Percolator与分布式事务思考(二)
    • 写给MongoDB开发者的50条建议Tip1
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1