日期:2014-05-20  浏览次数:20585 次

数据库系统设计的一个问题
     最近公司要弄个短信群发系统,流程大概是这样子,客户端提交要发送的短信和号码到服务器数据库,然后服务器从数据库提取号码和内容发送给网关发送。客户提交的短信一条内容对应多个号码,内容和号码分别保存在数据库中的两个表,客户提交的时候先保存内容,再保存号码。服务器是间隔一段时间扫描数据库看是否有新提交的数据需要发送,如果有,就提交给网关。现在有这样一个问题:假如客户提交一条短信内容需要发送个10000个号码,这时候服务器端发现有新提交内容,要从数据库中取号码的时候,此时数据库只保存了5000个号码,那么服务器端就只能取出5000个号码发送给网关。我想问下有没有什么办法解决这个问题。
------最佳解决方案--------------------
短信内容表增加状态控制。状态0 :插入短信内容时默认,插入号码后更新状态为1.
服务器端检查到有新的内容时,判断状态是否为1 如为1 则发送。否则等待。
------其他解决方案--------------------
支持楼上  顶
------其他解决方案--------------------
隔离级别设置为readcommited,就不会有脏读,除非你插入一条commit一次,不然你是读不到脏数据的

------其他解决方案--------------------
楼主:我的流程不一样,客户端提交要发送的短信和号码到服务器数据库,然后服务器从数据库提取号码和内容发送给网关发送。客户提交的短信多条内容对应多个号码,内容和号码分别保存在数据库中一张表的两个字段,有这个逻辑吗?