日期:2014-05-17  浏览次数:20582 次

【课表】这个表该怎么建合适?

如图,我想实现如图的显示效果。但是一直苦于表结构的设计。
求大神解救。

以及后来查询的sql语句该怎样写,才能实现如图的显示效果。
十分感谢。

------解决方案--------------------
SQL code

[curriculumId] [bigint] IDENTITY(1,1) NOT NULL,
    [grade] [varchar](10) COLLATE Chinese_PRC_CI_AS NOT NULL,
    [collegeId] [int] NOT NULL,
    [collegeCode] [varchar](10) COLLATE Chinese_PRC_CI_AS NULL,
    [collegeName] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL,
    [professionalId] [int] NOT NULL,
    [professionalName] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL,
    [courseId] [int] NOT NULL,
    [courseName] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL,
    [courseHours] [int] NULL,
    [courseType1] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
    [courseType2] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
    [classId] [int] NOT NULL,
    [className] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL,
    [teacherId] [int] NOT NULL,
    [teacherName] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL,
    [classRoomId] [int] NULL,
    [classRoomName] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL,
    [classRoomNo] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL,
    [week] [int] NOT NULL,
    [time] [int] NOT NULL,
    [festival] [int] NOT NULL,

------解决方案--------------------
建表应该不是重点,关键是显示。可以用DataGrid控件,复合表头,合并单元格!
------解决方案--------------------
看不到图。。。。。。。。。
------解决方案--------------------
查询你这个效果不是问题
------解决方案--------------------
表结构。姓名。星期,时间段。是否有课。

后面行转列就是你要的。

但是显示成那样的结果。用报表控件去做。
------解决方案--------------------
建议 建立两个表 一个 hrShiftM, 一个 hrShiftD

hrShiftM 就是你提示的图一样建立,

hrShiftD 是在你保存的时候, 将 每个人保存成 每人每星期几什么部分打勾 的单条记录形式。
以方便后续 联合表使用。。

体会一下就明白了, 这跟 人事排班 一样的形式。