• 开发公共课选修系统之二


    上一讲


    系统前台结构图












    下面是数据库数据字典的设计:

     

    a.选课表 table_course

       

    字 段 名 称

    数 据 结 构

       

    1

    c_id

    数字

    选课编号,自动编号,pk

    2

    c_name

    文本

    选课名

    3

    d_id

    数字

    系别编号,fk系别表

    4

    c_max_number

    数字

    最大可选人数

    5

    c_now_number

    数字

    现在已选人数

    6

    c_eff_date

    文本

    有效日期,如2004-5-1 9:23:54

    C#中用DateTime.Now.ToString()获得

    7

    c_credit_hour

    数字

    学分数

    8

    c_introduction

    文本

    课程简介

    b.学生表 table_student

       

    字 段 名 称

    数 据 结 构

       

    1

    s_id

    数字

    学号,要求程序可批量添加学生,pk

    2

    s_name

    文本

    学生名

    3

    d_id

    数字

    系别编号,fk系别表

    4

    spe_id

    数字

    专业班编号,fk专业班表

    5

    native_place

    文本

    籍贯

    6

    identity_card

    数字

    身份证号,18位,若15位则将其转为18

    7

    term_credit_hours

    数字

    本学期已选课学分数,默认0

    8

    all_credit_hours

    数字

    已选、已修选修课学分,默认0

    9

    s_pwd

    文本

    学生密码,自动生成或为空

    c.选课与学生联系表 table_course_student

       

    字 段 名 称

    数 据 结 构

       

    1

    c_id

    数字

    选课编号,fk选课表

    2

    s_id

    数字

    学号,fk学生表

    3

    c_s_mark

    数字

    选课成绩,浮点数,如60.5

    d.专业班表   table_specialty_class

       

    字 段 名 称

    数 据 结 构

       

    1

    spe_id

    数字

    专业班编号,自动编号,pk

    2

    spe_name

    文本

    专业名+班号,其中班号为最后1位字符,班号由可选项输入,19

    3

    d_id

    数字

    系别编号,fk系别表

    4

    entrance_year

    数字

    入学年份,列表:2006-21004

    5

    term_max_spe_number

    数字

    专业本学期最大可选修课数

    6

    spe_stu_number

    数字

    专业班最大人数

    7

    education_level

    文本

    在读学历,可选或列表,本科或专科,无研究生

    e.系别表 table_department

       

    字 段 名 称

    数 据 结 构

       

    1

    d_id

    数字

    系别编号,自动编号,pk

    2

    d_name

    文本

    系别名

    3

    d_stu_number

    数字

    系别总人数,默认0

    f.管理员表   table_admin

       

    字 段 名 称

    数 据 结 构

       

    1

    a_id

    数字

    管理员编号,自动编号,pk

    2

    a_name

    文本

    管理员姓名

    3

    a_pwd

    文本

    管理员密码



    在这里说一下数据库的关系模式的规范形式:
    1NF:每个属性的值域都是不可再分的简单数据项,不用说了吧。

    2NF:关系模式R是1NF,而且每一个非键属性都完全函数依赖于R的键(即不存在“部分函数依赖”)。转换为2NF的方法是:消除部分函数依赖。

    3NF:关系模式R是2NF,而且它的任何一个非键属性都不传递依赖于R的任何候选键。转换为3NF的方法是:消除传递函数依赖。

    BCNF:若关系模式R是1NF,如果对于R的每个函数依赖 X —〉Y,X必为候选键,则R为BCNF。
                                                                                    
    3NF转换为BCNF的方法:消除主属性对键的部分和传递函数依赖,即将3NF关系分解成多个BCNF关系模式。不过,属于3NF而非BCNF的关系模式不多。

    一般设计成2NF或3NF就可以了。

    我设计的应该是3NF以上吧!




    关系图

  • 相关阅读:
    数组(Array)的使用方法
    Django中的事务操作
    什么是事务(Transaction)?事务的四个特性以及事务的隔离级别
    0.2 Django + Uwsgi + Nginx 的生产环境部署之实战篇
    0.1 Django + Uwsgi + Nginx 的生产环境部署之理论篇
    linux 进入编辑文件,保存退出相关命令
    Django--restframework
    使用用户名/邮箱/手机号 + 密码登陆 多形式登陆
    Django中异步任务---django-celery
    Redis 常用命令
  • 原文地址:https://www.cnblogs.com/bankey/p/361389.html
Copyright © 2020-2023  润新知