点歌系统.docx
《点歌系统.docx》由会员分享,可在线阅读,更多相关《点歌系统.docx(40页珍藏版)》请在冰豆网上搜索。
点歌系统
数据库上机实验报告
学院化工学院
专业过程装备与控制工程
课程题目点歌系统
年级2009
成员李世铭3009207179
李苍亮3009207177
鲁佳3009207187
2010年12月3日
目录
1.题目1
2.变量及关系说明1
3.需求分析2
4.组员组成,任务分配3
5.E-R图展示4
6.关系图展示5
7.存储过程展示5
8.触发器展示16
9.总结经历学习不足18
10.附:
脚本展示19
1.题目
点歌系统
2.变量及关系说明
关系1:
歌手(实体集)
变量:
歌手ID,歌手姓名,性别,首字母,姓名长度,地域,类型
主键:
歌手ID
约束:
性别,地域,类型
关系2:
歌曲(实体集)
变量:
歌曲ID,歌曲名称,首字母,歌曲长度,语种,歌手
主键:
歌曲ID
约束:
语种
外键:
歌手
关系3:
管理员(实体集)
变量:
管理员ID,姓名,权限
主键:
管理员ID
约束:
权限
关系4:
用户(实体集)
变量:
用户ID,房间号,价格
主键:
用户ID
关系5:
会员继承(用户)
变量:
用户ID,房间号,价格,会员ID,会员等级
主键:
用户ID
关系6:
一般用户继承(用户)
变量:
用户ID,房间号,价格,排名
主键:
用户ID
关系7:
已选歌曲(实体集)
变量:
歌曲ID,时长,顺序
外键:
顺序
关系8;点歌(联系集)
关系9:
预约(联系集)
变量:
总时长
3.需求分析
点歌系统需求分析:
(1)点歌系统的主要特点:
●在系统中用户进行选择,通过管理员提出订单,然后对点歌系统进行访问
●对于每个用户,都会有当时的ID,房间号和价格属性,而用户可以分为普通用户和会员,普通用户可以被评判等级,会员如果出示具有卡号ID的不同级别的会员卡,可以享受不同级别的优惠政策,影响价格属性。
●歌曲信息包括歌曲ID,歌曲名称,首字母缩写,语种,歌名长度,歌曲时长和歌手。
●歌手信息包括歌手ID,歌手姓名,首字母缩写,歌手性别,歌手是单人还是组合,歌手来自大陆、港台、韩日抑或欧美国家。
●用户通过从歌手点歌或从歌名点歌来增加已选歌曲,已选歌曲按顺序排放并且播放,已选歌曲的总时间是所有已选歌曲单个时间的总长
●管理员有不同的权限,可以增加、删除或者更新歌曲,也可以安排用户进行开房等内容。
(2)分析点歌系统需求
系统中的功能模块可由四部分组成:
1)歌曲功能集合,2)歌手功能集合,3)用户管理员功能集合,4)已选歌曲功能集合。
4.组员组成,任务分配
组长:
李世铭
组员:
李苍亮
鲁佳
5.E-R图展示
6.关系图展示
7.存储过程展示
功能1;添加歌手
功能2:
添加类型
功能3:
添加区域
功能4:
添加语言
功能5:
添加歌曲
功能6:
添加预备会员卡等级
功能7:
添加顾客
功能8:
添加会员
功能9、10、11:
添加普通房间获取房间重新获取房间
功能12:
创建开始点歌
功能13:
定房间
功能14:
添加服务员
功能15:
点歌
功能16:
切歌
功能17、18、19:
结账添加时间价格添加附加价格
功能20添加清屏
8.触发器展示
1更新顾客
2停止点歌
9.总结经历学习不足
数据库系统是一个庞大的,覆盖面很广的系统,蕴含了很多很多相关的知识和内容,只有在不断的学习中,才可以逐渐领悟进而掌握数据库的相关知识和内容,而且数据库也是不断更新的,这更要求我们要尽可能的紧跟它更新的步伐,多学知识。
在编写程序的时候我们遇到了种种问题,有些问题是书本上的知识没有讲解的,这需要的门通过搜索相关资料进行学习,在搜索中,我们也得到了提高。
不过,我们还有很多不足,例如在选择这个课题之后,发现其并不像仓库管理等数据库一样更多依赖数据,而是需要我们更多的思考建立关系,在这个过程中,我们可能还是有所欠缺的。
在今后的学习中我们也会多锻炼这方面的能力。
10.附:
脚本展示
一、创建表脚本展示
1、创建区域表
CREATETABLE`area`(
`area`varchar(20)NOTNULL,
PRIMARYKEY(`area`)
)ENGINE=InnoDBDEFAULTCHARSET=latin1;
2、创建预备会员卡等级
CREATETABLE`card_level`(
`level`int(11)NOTNULL,
`level_name`varchar(30)NOTNULL,
PRIMARYKEY(`level`)
)ENGINE=InnoDBDEFAULTCHARSET=latin1;
3、创建国籍
CREATETABLE`stat`(
`stat`varchar(20)NOTNULL,
PRIMARYKEY(`stat`)
)ENGINE=InnoDBDEFAULTCHARSET=latin1;
4.、创建服务员
CREATETABLE`waitor`(
`id`int(11)NOTNULL,
`name`varchar(100)NOTNULL,
`engage_time`int(11)NOTNULL,
PRIMARYKEY(`id`)
)ENGINE=InnoDBDEFAULTCHARSET=latin1;
5、创建类型
CREATETABLE`type`(
`type`varchar(50)NOTNULL,
PRIMARYKEY(`type`)
)ENGINE=InnoDBDEFAULTCHARSET=latin1;
6、创建顾客
CREATETABLE`customer`(
`customer_id`int(11)NOTNULL,
`total_cost`int(11)NOTNULL,
PRIMARYKEY(`customer_id`)
)ENGINE=InnoDBDEFAULTCHARSET=latin1;
7创建语言
CREATETABLE`language`(
`language`varchar(20)NOTNULL,
PRIMARYKEY(`language`)
)ENGINE=InnoDBDEFAULTCHARSET=latin1;
8、创建歌手
CREATETABLE`singer`(
`singer_id`int(11)NOTNULL,
`singer_name`varchar(100)NOTNULL,
`first_letter`varchar(20)NOTNULL,
`type`varchar(50)DEFAULTNULL,
`length`int(11)NOTNULL,
`area`varchar(20)DEFAULTNULL,
PRIMARYKEY(`singer_id`),
KEY`type`(`type`),
KEY`area`(`area`),
CONSTRAINT`singer_ibfk_1`FOREIGNKEY(`type`)REFERENCES`type`(`type`),
CONSTRAINT`singer_ibfk_2`FOREIGNKEY(`area`)REFERENCES`area`(`area`)
)ENGINE=InnoDBDEFAULTCHARSET=latin1;
9、创建歌曲
CREATETABLE`song`(
`song_id`int(11)NOTNULL,
`time`int(11)NOTNULL,
`song_name`varchar(100)NOTNULL,
`first_name`varchar(20)NOTNULL,
`length`int(11)NOTNULL,
`language`varchar(20)DEFAULTNULL,
`singer_id`int(11)DEFAULTNULL,
PRIMARYKEY(`song_id`),
KEY`language`(`language`),
KEY`singer_id`(`singer_id`),
CONSTRAINT`song_ibfk_1`FOREIGNKEY(`language`)REFERENCES`language`(`language`),
CONSTRAINT`song_ibfk_2`FOREIGNKEY(`singer_id`)REFERENCES`singer`(`singer_id`)
)ENGINE=InnoDBDEFAULTCHARSET=latin1;
10、创建房间
CREATETABLE`room`(
`room_id`int(11)NOTNULL,
`in_use`tinyint
(1)NOTNULL,
PRIMARYKEY(`room_id`)
)ENGINE=InnoDBDEFAULTCHARSET=latin1;
11、创建已选歌曲
CREATETABLE`chozen`(
`room_id`int(11)NOTNULL,
`sequence`int(11)NOTNULL,
`stat`varchar(20)NOTNULL,
`song_id`int(11)NOTNULL,
PRIMARYKEY(`room_id`,`sequence`),
KEY`song_id`(`song_id`),
KEY`stat`(`stat`),
CONSTRAINT`chozen_ibfk_1`FOREIGNKEY(`room_id`)REFERENCES`room`(`room_id`),
CONSTRAINT`chozen_ibfk_2`FOREIGNKEY(`song_id`)REFERENCES`song`(`song_id`),
CONSTRAINT`chozen_ibfk_3`FOREIGNKEY(`stat`)REFERENCES`stat`(`stat`)
)ENGINE=InnoDBDEFAULTCHARSET=latin1;
12创建点歌
CREATETABLE`ordered`(
`room_id`int(11)NOTNULL,
`customer_id`int(11)NOTNULL,
PRIMARYKEY(`room_id`),
KEY`customer_id`(`customer_id`),
CONSTRAINT`ordered_ibfk_1`FOREIGNKEY(`room_id`)REFERENCES`room`(`room_id`),
CONSTRAINT`ordered_ibfk_2`FOREIGNKEY(`customer_id`)REFERENCES`customer`(`customer_id`)
)ENGINE=InnoDBDEFAULTCHARSET=latin1;
13、创建会员
CREATETABLE`member`(
`card_id`int(11)NOTNULL,
`card_level`int(11)NOTNULL,
`customer_id`int(11)NOTNULL,
PRIMARYKEY(`card_id`),
KEY`card_level`(`card_level`),
KEY`customer_id`(`customer_id`),
CONSTRAINT`member_ibfk_1`FOREIGNKEY(`card_level`)REFERENCES`card_level`(`level`),
CONSTRAINT`member_ibfk_2`FOREIGNKEY(`customer_id`)REFERENCES`customer`(`customer_id`)
)ENGINE=InnoDBDEFAULTCHARSET=latin1;
二、插入数据脚本展示
1、插入地域信息
calladd_area('Mainland');
calladd_area('Malaysia');
calladd_area('HongKong');
calladd_area('Taiwan');
calladd_area('Japan');
calladd_area('America');
calladd_area('Korea');
calladd_area('Spain');
calladd_area('Sweden');
calladd_area('UK');
calladd_area('France');
calladd_area('Italy');
calladd_area('Germany');
calladd_area('Argentina');
calladd_area('Poland');
calladd_area('Austria');
calladd_area('Belgium');
calladd_area('Russia');
calladd_area('Other');
2、插入预备会员卡等级信息
calladd_card_level(@cl,'Fronze');
calladd_card_level(@cl,'Silver');
calladd_card_level(@cl,'Gold');
calladd_card_level(@cl,'Platina');
calladd_card_level(@cl,'Diamond');
calladd_card_level(@cl,'A');
calladd_card_level(@cl,'B');
calladd_card_level(@cl,'C');
calladd_card_level(@cl,'D');
calladd_card_level(@cl,'E');
calladd_card_level(@cl,'F');
calladd_card_level(@cl,'G');
calladd_card_level(@cl,'H');
calladd_card_level(@cl,'I');
calladd_card_level(@cl,'J');
calladd_card_level(@cl,'K');
calladd_card_level(@cl,'L');
calladd_card_level(@cl,'M');
calladd_card_level(@cl,'N');
calladd_card_level(@cl,'O');
3、插入顾客信息
calladd_customer();
calladd_customer();
calladd_customer();
calladd_customer();
calladd_customer();
calladd_customer();
calladd_customer();
calladd_customer();
calladd_customer();
calladd_customer();
calladd_customer();
calladd_customer();
calladd_customer();
calladd_customer();
calladd_customer();
calladd_customer();
calladd_customer();
calladd_customer();
calladd_customer();
calladd_customer();
4、插入语言种类信息
calladd_language('Mandarin');
calladd_language('English');
calladd_language('Japanese');
calladd_language('Korean');
calladd_language('Cantonese');
calladd_language('French');
calladd_language('Spanish');
calladd_language('German');
calladd_language('Italian');
calladd_language('Belge');
calladd_language(’Polish');
calladd_language('Russian');
calladd_language('Autrichien');
calladd_language('Hungarian');
calladd_language('Swedish');
calladd_language('Dialects');
calladd_language('Johab');
calladd_language('Thai');
calladd_language('Malay');
calladd_language('Other');
5、插入会员信息
calladd_member(20,1);
calladd_member(19,1);
calladd_member(18,1);
calladd_member(17,1);
calladd_member(16,1);
calladd_member(15,1);
calladd_member(14,1);
calladd_member(13,1);
calladd_member(12,1);
calladd_member(11,1);
calladd_member(10,1);
calladd_member(9,1);
calladd_member(8,1);
calladd_member(7,1);
calladd_member(6,1);
calladd_member(5,1);
calladd_member(4,1);
calladd_member(3,1);
calladd_member(2,1);
calladd_member(1,1);
6、插入歌手类型信息
calladd_type('femalesingle');
calladd_type('malesingle');
calladd_type('combination');
7、插入歌手信息
calladd_singer(@id,'zhoujielun','ZJL','malesingle',3,'Taiwan');
calladd_singer(@id,'liangjingru','LJR','femalesingle',3,'Malaysia');
calladd_singer(@id,'xusong','XS','malesingle',2,'Mainland');
calladd_singer(@id,'cangmumayi','CMMY','femalesingle',4,'Japan');
calladd_singer(@id,'backstreetsboys','BB','combination',2,'occident');
calladd_singer(@id,'westlife','WL','combination',2,'occident');
calladd_singer(@id,'chenyixun','CYX','malesingle',3,'HongKong');
calladd_singer(@id,'chenhuilin','CHL','femalesingle',3,'HongKong');
calladd_singer(@id,'ladygaga','LG','femalesingle',3,'occident');
calladd_singer(@id,'caiyan','CY','femalesingle',2,'Korea');
calladd_singer(@id,'taozhe','TZ','malesingle',2,'Taiwan');
calladd_singer(@id,'sunnan','SN','malesingle',2,'Mainland');
calladd_singer(@id,'hanhong','HH','femalesingle',2,'Mainland');
calladd_singer(@id,'liuhuan','LH','malesingle',2,'Mainland');
calladd_singer(@id,'tuhonggang','THG','malesingle',3,'Mainland');
calladd_singer(@id,'wangfei','WF','femalesingle',2,'Mainland');
calladd_singer(@id,'BY2','BY','combination',2,'TaiWan');
calladd_singer(@id,'xiaohudui','XHD','combination',3,'Mainland');
calladd_singer(@id,'wanglihong','WLH','malesingle',3,'Taiwan');
calladd_singer(@id,'linjunjie','LJJ','malesingle',3,'Singapore');
8、插入曲目信息
calladd_song(@id,301,'qinghuaci','QHC',3,'Mandarin',0);
calladd_song(@id,364,'daoxian