mysql学生投票数据库设计_第1页
mysql学生投票数据库设计_第2页
mysql学生投票数据库设计_第3页
mysql学生投票数据库设计_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MySQL学生投票数据库设计概述:本文旨在介绍如何基于MySQL数据库设计一个简单的学生投票系统,包括数据库结构、数据表设计、存储过程、触发器以及相应的SQL语句等内容,供初学者参考。一、数据库结构根据投票系统的需求,我们可以将数据库结构设计为:学生信息表、投票主体表、投票选项表、投票记录表等四个部分。其中学生信息表用于存储学生的基本信息,投票主体表用于存储投票标题、开始结束时间等信息,投票选项表用于存储投票选项,投票记录表用于存储各个学生的投票记录。二、数据表设计1.学生信息表CREATETABLE`student_info`(`stu_id`int(11)NOTNULLAUTO_INCREMENTCOMMENT'学生ID',`stu_name`varchar(50)DEFAULTNULLCOMMENT'学生姓名',`stu_gender`int(2)DEFAULTNULLCOMMENT'学生性别(0:女,1:男)',`stu_dept`varchar(50)DEFAULTNULLCOMMENT'学生所在院系',`stu_major`varchar(50)DEFAULTNULLCOMMENT'学生所学专业',`stu_class`varchar(50)DEFAULTNULLCOMMENT'学生班级',PRIMARYKEY(`stu_id`))ENGINE=InnoDBDEFAULTCHARSET=utf8mb4COMMENT='学生信息表';注释:该表用于存储学生基本信息,包括学生ID、学生姓名、学生性别、学生所在院系、学生所学专业、学生班级等字段。2.投票主体表CREATETABLE`vote_subject`(`vs_id`int(11)NOTNULLAUTO_INCREMENTCOMMENT'投票ID',`vs_title`varchar(50)DEFAULTNULLCOMMENT'投票标题',`vs_desc`varchar(500)DEFAULTNULLCOMMENT'投票描述',`vs_start_time`datetimeDEFAULTNULLCOMMENT'投票开始时间',`vs_end_time`datetimeDEFAULTNULLCOMMENT'投票结束时间',`vs_status`int(2)DEFAULTNULLCOMMENT'投票状态(0:已结束,1:进行中,2:未开始)',PRIMARYKEY(`vs_id`))ENGINE=InnoDBDEFAULTCHARSET=utf8mb4COMMENT='投票主体表';注释:该表用于存储投票主体信息,包括投票ID、投票标题、投票描述、投票开始时间、投票结束时间以及投票状态等字段。3.投票选项表CREATETABLE`vote_options`(`vo_id`int(11)NOTNULLAUTO_INCREMENTCOMMENT'选项ID',`vs_id`int(11)NOTNULLCOMMENT'投票ID',`vo_title`varchar(50)DEFAULTNULLCOMMENT'选项标题',`vo_desc`varchar(500)DEFAULTNULLCOMMENT'选项描述',`vo_image`varchar(100)DEFAULTNULLCOMMENT'选项图片',`vo_order`int(2)DEFAULTNULLCOMMENT'选项顺序',PRIMARYKEY(`vo_id`))ENGINE=InnoDBDEFAULTCHARSET=utf8mb4COMMENT='投票选项表';注释:该表用于存储投票选项信息,包括选项ID、投票ID、选项标题、选项描述、选项图片以及选项顺序等字段。4.投票记录表CREATETABLE`vote_records`(`vr_id`int(11)NOTNULLAUTO_INCREMENTCOMMENT'记录ID',`vs_id`int(11)NOTNULLCOMMENT'投票ID',`vo_id`int(11)DEFAULTNULLCOMMENT'选项ID',`stu_id`int(11)NOTNULLCOMMENT'学生ID',`vr_ip`varchar(50)DEFAULTNULLCOMMENT'记录IP',`vr_create_time`datetimeDEFAULTNULLCOMMENT'记录创建时间',PRIMARYKEY(`vr_id`))ENGINE=InnoDBDEFAULTCHARSET=utf8mb4COMMENT='投票记录表';注释:该表用于存储投票记录信息,包括记录ID、投票ID、选项ID、学生ID、记录IP以及记录创建时间等字段。三、存储过程1.添加投票主体信息CREATEPROCEDURE`sp_vote_add_subject`(invs_titlevarchar(50),invs_descvarchar(500),invs_start_timeDATETIME,invs_end_timeDATETIME)BEGINinsertintovote_subject(vs_title,vs_desc,vs_start_time,vs_end_time,vs_status)values(vs_title,vs_desc,vs_start_time,vs_end_time,2);selectLAST_INSERT_ID()asvs_id;END注释:该存储过程用于添加投票主体信息,包括投票标题、投票描述、投票开始时间以及投票结束时间等信息,同时会自动将投票状态设置为“未开始”,返回投票主体ID。2.添加投票选项信息CREATEPROCEDURE`sp_vote_add_options`(invs_idint(11),invo_titlevarchar(50),invo_descvarchar(500),invo_imagevarchar(100),invo_orderint(2))BEGINinsertintovote_options(vs_id,vo_title,vo_desc,vo_image,vo_order)values(vs_id,vo_title,vo_desc,vo_image,vo_order);selectLAST_INSERT_ID()asvo_id;END注释:该存储过程用于添加投票选项信息,包括投票ID、选项标题、选项描述、选项图片以及选项顺序等信息,返回选项ID。3.添加投票记录信息CREATEPROCEDURE`sp_vote_add_record`(invs_idint(11),invo_idint(11),instu_idint(11),invr_ipvarchar(50))BEGINinsertintovote_records(vs_id,vo_id,stu_id,vr_ip,vr_create_time)values(vs_id,vo_id,stu_id,vr_ip,now());updatevote_optionssetvo_count=vo_count+1wherevo_id=vo_id;END注释:该存储过程用于添加投票记录信息,包括投票ID、选项ID、学生ID、记录IP以及创建时间等信息,同时会更新选项的得票数。四、触发器1.投票记录信息添加触发器CREATETRIGGER`vote_records_add`AFTERINSERTON`vote_records`FOREACHROWBEGINupdatevote_optionssetvo_count=vo_count+1wherevo_id=NEW.vo_id;END注释:该触发器用于在投票记录信息添加时,更新对应选项的得票数。五、SQL语句1.查询正在进行的投票记录SELECT*FROMvote_subjectsWHEREs.vs_status=1;2.查询所有学生信息SELECT*FROMstudent_info;3.查询指定学生的投票记录SELECT*FROMvote_recordsrWHEREr.stu_id=1;4.查询指定投票的选项列表及得票数SELE

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论