--1.系表
create table department(d_id int,d_name char(20)) --2.专业表
create table speciality (s_id int ,s_name char(20),s_d_id int) 
--3.班级表
create table class(c_id int ,c_name char(20),c_d_id int,c_s_id int) 
--4.学生表
create table users(u_id int ,u_name char(20),u_d_id int,u_s_id int,u_c_id int )

解决方案 »

  1.   

    如下表结构,学生表中只存放系别编号/专业编号/班级编号信息,通过与系别表/专业表/班级表关联获取系别名称/专业名称/班级名称;修改系别表/专业表/班级表时,不需要改动学生表。系别表
    ------------------------
    DeptID 系别编号
    DeptName 系别名称专业表
    ------------------------
    SpecID 专业编号
    SpecName 专业名称班级表
    ------------------------
    ClassID 班级编号
    ClassName 班级名称学生表
    ------------------------
    StudID 学生编号
    StudName 学生姓名
    DeptID 系别编号
    SpecID 专业编号
    ClassID 班级编号
    查询语句:select
        d.学生编号,d.学生姓名,a.系别名称,b.专业名称,c.班级名称
    from
        系别表 a,
        专业表 b,
        班级表 c,
        学生表 d
    where
        a.系别编号=d.系别编号 and b.专业编号=d.专业编号 and c.班级编号=d.班级编号