日期作主键的一部分

上一篇 / 下一篇  2015-03-25 20:57:10 / 个人分类:DB

条件: 日期与类型联合作主键;但在维护页面只能输入日期的年份和月份。
操作:1. (1)创建 2012-9 月类型‘A’ 的记录 --> 创建成功;日期字段存为2012-9-1
        (2) 创建 2012-9 月类型‘A’的另一记录--> 页面程序仍打算将日期存为2012-9-1,这与上一条记录重复,报错!
     2. (1)数据库中已有1.(1)创建的数据的情况下,用户可以绕过页面,通过其他方式在数据库添加‘2012-9-2’、类型'A' 的记录 【注意:是整个日期字段作主键的一部分,这两条记录尽管年月相同但日不同,所以并没有违反主键约束】。
        (2)当用户试图从页面删除‘2012-9-2’这条记录时,页面上只能看到'2012-9'并根据去寻找‘2012-9-1’这条数据,因为两条记录的时间戳不同,故页面报错。

解决方案:
我们发现,页面在存记录时,将页面上的2012-9转换为2012-9-1存到数据库,而删除时又根据页面上的2012-9寻找数据库里的2012-9-1.
如果在存储1-(2)时,发现数据库中已有1-(1)的2012-9-1,就给当前数据设为2012-9-2,便可以存储成功;
删除时,也根据当前记录的日期字段的整个值(2012-9-2)去寻找时间戳,就可以解决了!

  


TAG:

 

评分:0

我来说两句

日历

« 2023-09-06  
     12
3456789
10111213141516
17181920212223
24252627282930

数据统计

  • 访问量: 7322
  • 日志数: 15
  • 建立时间: 2015-03-25
  • 更新时间: 2016-08-19

RSS订阅

Open Toolbar