调度信息管理系统数据库设计问题

sg4567 发布于 2016/09/27 15:59
阅读 283
收藏 0

初学者在设计一个基于调度的mis,遇到了数据库设计方面的问题:横列是时间轴(1-31号),竖列是安排的人员,如下图,请问数据库该如何设计??求设计大神们指点一二啊,谢谢谢!


加载中
0
红薯官方
红薯官方

数据归数据,显示归显示。

你的数据表应该是纵向的。

被安排的人员ID、待办事ID、安排时间

user01    todo01    2016-09-28 11:00:00

user02    todo02    2016-09-29 08:00:00


怎么显示呢?

如果你是用JSP、JSTL之类的后端模板技术,那么你需要设计一个时间轴的数据结构:

// 时间轴
public class TimeLine {
  int month; // 月份
  int days; // 这个月共多少天

  List< List<PersonalTask> > schedules = new ArrayList<>(); // 人员的任务调度,里面的List装的是某一天的任务


}

// 人员任务
public class PersonalTask {
  long id; // 主键
  String username; // 用户名
  String taskId; // 任务id
  Date date; // 安排日期

}



然后界面上面,for循环timeLine.days、某一天里面的0-23时,根据day下标取schedules、根据hour遍历某一天的任务,最终产生一个view出来。

具体的代码自己实践吧,到这里已经比较清楚了吧。

0
s
sg4567
求指点啊
0
红薯官方
红薯官方

引用来自“web4j”的评论

数据归数据,显示归显示。

你的数据表应该是纵向的。

被安排的人员ID、待办事ID、安排时间

user01    todo01    2016-09-28 11:00:00

user02    todo02    2016-09-29 08:00:00


怎么显示呢?

如果你是用JSP、JSTL之类的后端模板技术,那么你需要设计一个时间轴的数据结构:

// 时间轴
public class TimeLine {
  int month; // 月份
  int days; // 这个月共多少天

  List< List<PersonalTask> > schedules = new ArrayList<>(); // 人员的任务调度,里面的List装的是某一天的任务


}

// 人员任务
public class PersonalTask {
  long id; // 主键
  String username; // 用户名
  String taskId; // 任务id
  Date date; // 安排日期

}



然后界面上面,for循环timeLine.days、某一天里面的0-23时,根据day下标取schedules、根据hour遍历某一天的任务,最终产生一个view出来。

具体的代码自己实践吧,到这里已经比较清楚了吧。

补充下怎么读取表的数据,传入年、月:
select * from Table where date between '2016-09-01 00:00:00' and '2016-09-30 23:59:59'
具体这个月有多少天,你要自己去计算,借助JDK提供的类java.util.Calendar。
把数据从数据库中取出之后,用Java代码将数据封装转换成TimeLine实体类所需要的数据格式。
返回顶部
顶部