需求如下:
1.一个学校的信息系统,学校有多个年级,一个年级有多个班级,一个班级有多个学生;
2.学校希望记录下所有学生的每个学期的在校情况、体检表、各课成绩单
3.学校指定的老师可以修改在校情况、体检表、各课成绩单的字段,例如:在校情况上学期设定字段为(情绪发展、社会性发展、认知技能发展、生活能力),下学期初老师可以添加(增加“身体发展”)、或者修改(修改“生活能力”为“参与能力”)、或者删除(删除“情绪发展”)在校情况表的字段,并且保留上学期的记录,添加新记录。
4.体检表、成绩单都有同上的功能,用户可以改变表的结构并且还要保留已经保存的表内容。
5. 在校情况、体检表、各课成绩单都以学期为时间保留记录,一个学生都分别有三张可以由老师查看到的在校情况、体检表、各课成绩单表。
6.老师在学期初或者学期末填写和修改每个学生的在校情况、体检表、各课成绩单;
已经设计了用户表、年级表、班级表,现在对于上述三个信息表的设计有困难请帮助,谢谢以100分重谢!!!问题得到解决后及时结帖给分。

解决方案 »

  1.   

    成绩单我曾经实现过
    下面是表结构:
    科目表:
    CREATE TABLE [Subject] (
    [AutoID] [int] IDENTITY (1, 1) NOT NULL ,
    [SubjectName] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,    --科目名
    ) ON [PRIMARY]
    GO
    成绩主表:
    CREATE TABLE [StudentReports] (
    [AutoId] [int] IDENTITY (1, 1) NOT NULL ,
    [MDate] [datetime] NULL ,
    [ClassNo] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL ,   --班级代码
    [ExamType] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL ,  --考试类型 [EXamYear] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL ,  --学年
    [Term] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL ,      --学期
    [SubjectNum] [int] NOT NULL CONSTRAINT [DF_NewStudentReports_SubjectNum] DEFAULT (0),      --成绩表科目数量
    [SubjectTitle] [varchar] (500) COLLATE Chinese_PRC_CI_AS NULL ,  --动态科目字段名(格式如:语文,数学,英语。)可动态指定
    CONSTRAINT [PK_tudentReports] PRIMARY KEY  CLUSTERED 
    (
    [AutoId]
    )  ON [PRIMARY] 
    ) ON [PRIMARY]
    GO成绩明细表:
    CREATE TABLE [StudentReports_M] (
    [AutoID] [int] IDENTITY (1, 1) NOT NULL ,
    [StudentReportsID] [int] NOT NULL ,      --主表和明细表的关联字段
    [StudentName] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL ,  --学生名字
    [ExamResult1] [float] NULL ,    --科目1的成绩
    [ExamResult2] [float] NULL ,    --科目2的成绩
    [ExamResult3] [float] NULL ,    --科目3的成绩以下类推(最多支持10个科目)
    [ExamResult4] [float] NULL ,
    [ExamResult5] [float] NULL ,
    [ExamResult6] [float] NULL ,
    [ExamResult7] [float] NULL ,
    [ExamResult8] [float] NULL ,
    [ExamResult9] [float] NULL ,
    [ExamResult10] [float] NULL ,
    CONSTRAINT [PK_StudentReports_M] PRIMARY KEY  CLUSTERED 
    (
    [AutoID]
    )  ON [PRIMARY] ,
    CONSTRAINT [FK_StudentReports_M_StudentReports] FOREIGN KEY 
    (
    [StudentReportsID]
    ) REFERENCES [StudentReports] (
    [AutoId]
    ) ON DELETE CASCADE 
    ) ON [PRIMARY]
    GO此成绩表主要优点是实现了动态增减科目,完全能够适应学校成绩表功能
    由于是动态科目的,所以在实现上有一定的难度,特别对于新手难度比较大,
    实现思路:
    1:先实现主表添加删除和修改(较易)
    2:选择主表的记录后按选择生成科目按钮动态选择生成需要生成的科目,填到主表的[SubjectNum]和[SubjectTitle]字段(中等难度)
    3:根据成绩主表和学生表动态生成学生成绩空表表到成绩明细表,并实现成绩明细表成绩填入和修改功能(一个页面就要实现完,有点象Excel表格)(有一定的难度)
    4:实现成绩表导到Excel功能(较易)
    5:实现从Excel表导到成绩表功能,一般用户都要求实现这个功能,导入的时候要先导到内存,然后在判断数据的正确性,和先找到相应的学生然后逐一填到对于的学生成绩里面去(较难)
      

  2.   

    MS的Sharepoint有这样的功能,你也可以考虑直接用Sharepoint做二次开发。