求大神这个数据表该怎么建
我现在想设计个工作计划管理的小软件,我的工作计划分周计划、月计划、年计划,这个工作计划表是不是要分别建立周表,月表,年表,还是直接建一个工作计划表呢?请大神帮忙分析一下。
现在我的想法是这样的,建立三个表,周表,月表,年表。但是周表得包含属于哪个月的,属于哪一年的,月表得包含属于哪一年的。这样的会不会有冗余数据呢?请大神指点。
[解决办法]
不知道你要存的是什么内容,如果可以的话一个表即可,用类型标识这是周,月,还是年的。
如果存储的是时间,可以用不同的视图得到不同的报表。
也可以用存储过程,把类型当做参数来处理。
如果数据量超级大,考虑分区。
[解决办法]
没必要啊,只要你的日期列能够标识,那么一个表足够了,用between and来统计周、月年的范围,这样更快,当表很大的时候,按照日期列来做分区也很好。
[解决办法]
那就一个表就行了
加个类型(周计划,月季花,年计划)
字段的话,加个日期,对于周计划,可以再加一个字段 存储是当月的第几周
[解决办法]
从时间上看月年的归属关系很容易。
[解决办法]
参考:
http://bbs.csdn.net/topics/390159439
[解决办法]
只要有日期时间就行了,周,月,星期几,季度。。。。都是可以检索的。
有个datepart()函数
[解决办法]
感觉好像设计上的思路反了。
都是在考虑以数据库里面的数据为标准:范围查询数据库日期—符合条件则显示
这种用途的模型,应该是以某个指定的日期为标准吧?
用户进去后,指定一个日期为标准(比如2013-03-29),然后再去读取相关的记录。
字段如下
ID int,自增+1,主键
适用日期-开始 date
适用日期-结束 date
类型 int(周计划、月计划、年计划等)
内容 nvarchar(max)
界面及功能大致如下
1、给个input,name=date_check,value=date()。
2、一排列表下去,date_check between 适用日期-开始 and 适用日期-结束。
当然,这里是否按照“类型”来排序看实际业务。
3、给出一些链接,下月、下周、10天后……具体日期的计算简单的。
周计算什么的似乎不需要,只计算具体的日期而已
select * from 表 date_check>=适用日期-开始 and date_check<=适用日期-结束
4、当然,是否无视date_check而置顶给出月计划、年计划什么的,实际需求。
5、特别备注:SQL语句、索引以及其他细节自己优化下吧,那方面我是菜鸟。
(或者将日期转换为int格式的,int比较大小貌似比较快咧?)