SpringBoot+vue仿网易云音乐网站(二) |
您所在的位置:网站首页 › qq音乐界面设计说明在哪 › SpringBoot+vue仿网易云音乐网站(二) |
一、需求分析
仿网易云,那么需求的话就照着网易云音乐来做了。 首先可以听歌,可以查看歌手,歌手又有对应的专辑,有用户,用户可以新建歌单,收藏歌单,歌单可以增删歌曲,用户还可以评论歌曲、专辑、歌单,还有粉丝功能,首页还有一个轮播图等…。 二、数据库设计详解综合需求可以得出,共有以下11张表。 1). 歌曲表 2). 歌手表 3). 专辑表 4). 歌单表 5). 歌单歌曲表 6). 用户表 7). 用户收藏歌曲表 8). 用户收藏歌单表 9). 粉丝表 10). 评论表 11). 轮播图表 下面对每一张表做详细介绍 1. 歌曲表 DROP TABLE IF EXISTS `song`; CREATE TABLE `song` ( `song_id` int(11) NOT NULL auto_increment COMMENT '主键id', `song_name` varchar(255) NOT NULL COMMENT '歌曲名称', `song_singer` int(11) default NULL COMMENT '歌手Id', `song_filepath` varchar(100) default NULL COMMENT '歌曲路径', `song_album` int(11) default NULL COMMENT '专辑Id', `song_lyc` varchar(3000) default NULL, '歌词' PRIMARY KEY (`song_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 2. 歌手表 DROP TABLE IF EXISTS `singer`; CREATE TABLE `singer` ( `singer_id` int(11) NOT NULL auto_increment, `singer_name` varchar(20) default NULL, '歌手名' `singer_details` varchar(255) default NULL, '歌手简介' `singer_photo` varchar(255) default NULL, '歌手头像' `singer_type` varchar(255) default NULL, '歌手类型' PRIMARY KEY (`singer_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;歌手类型是为了实现歌手页的分类的,华语男歌手、华语女歌手…等功能的。 3. 专辑表 DROP TABLE IF EXISTS `album`; CREATE TABLE `album` ( `album_id` int(11) NOT NULL auto_increment, `album_name` varchar(255) default NULL, '专辑名字' `album_singer` int(11) default NULL, '歌手Id' `album_details` varchar(255) default NULL, '专辑介绍' `album_time` datetime default NULL, '专辑发行时间' `album_img` varchar(255) default NULL, '专辑封面' PRIMARY KEY (`album_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;歌手、歌曲、专辑都是一对一,或者一对多的关系,就不需要建第三张表来关联了。 4. 歌单表 DROP TABLE IF EXISTS `lists`; CREATE TABLE `lists` ( `list_id` int(11) NOT NULL auto_increment, `list_title` varchar(255) default NULL, '歌单标题' `list_img` varchar(255) default NULL, '歌单封面' `list_userid` int(11) default NULL, '歌单创建者Id' `list_time` datetime default NULL, '歌单创建时间' `list_details` varchar(255) default NULL, '歌单简介' `list_type` int(11) default NULL, '歌单类型' `list_playnum` int(11) default NULL, '歌单点击量' PRIMARY KEY (`list_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 5. 歌单歌曲表因为一首歌曲可以在多个歌单里,同时一个歌单可以包含多首歌曲,所以歌曲、歌单是多对多的关系,需要建第三张表来关联。 DROP TABLE IF EXISTS `songlist`; CREATE TABLE `songlist` ( `songlist_id` int(11) NOT NULL auto_increment, `songlist_listid` int(11) default NULL, '歌单Id' `songlist_songid` int(11) default NULL, '歌曲Id' PRIMARY KEY (`songlist_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 6. 用户表手机号是因为我实现了手机号绑定,以及手机号登录。 DROP TABLE IF EXISTS `user`; CREATE TABLE `user` ( `user_id` int(11) NOT NULL auto_increment, `user_name` varchar(255) default NULL, '用户名' `account` varchar(255) default NULL, '用户账号' `password` varchar(255) default NULL, '用户密码' `user_phone` varchar(255) default NULL, '电话' `user_area` varchar(255) default NULL, '地区' `user_details` varchar(255) default NULL, '简介' `user_gender` int(11) default NULL, '性别' `user_birth` date default NULL, '生日' `user_photo` varchar(255) default NULL, '用户头像' PRIMARY KEY (`user_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 7. 用户收藏歌曲表同样用户可以收藏多首歌曲,歌曲也可以被多个用户收藏,所以是多对多的关系,需要建第三张表关联。 DROP TABLE IF EXISTS `usersong`; CREATE TABLE `usersong` ( `usersong_id` int(11) NOT NULL auto_increment, `usersong_userid` int(11) default NULL, '用户id' `usersong_songid` int(11) default NULL, '歌曲id' PRIMARY KEY (`usersong_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 8. 用户收藏歌单表同样用户可以收藏多个歌单,歌单也可以被多个用户收藏,所以是多对多的关系,需要建第三张表关联。 DROP TABLE IF EXISTS `userlist`; CREATE TABLE `userlist` ( `userlist_id` int(11) NOT NULL auto_increment COMMENT '用户收藏歌单表', `userlist_userid` int(11) default NULL, '用户id' `userlist_listid` int(11) default NULL, '歌单id' PRIMARY KEY (`userlist_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 9. 粉丝关注表用户的关注可能有歌手,可能有用户,粉丝只可能有用户。 CREATE TABLE `fans` ( `fans_id` int(11) NOT NULL auto_increment, `fans_type` int(11) default NULL, '类型,区分关注的是歌手还是用户' `fans_focusid` int(11) default NULL, '被关注者id,可能是歌手,也可能是用户' `fans_fansid` int(11) default NULL, '关注者id' PRIMARY KEY (`fans_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 10. 评论表用一个类型字段来区分是歌单、专辑,还是歌曲。 CREATE TABLE `comments` ( `comm_id` int(11) NOT NULL auto_increment, `comm_details` varchar(255) default NULL, '评论内容' `comm_time` datetime default NULL, '评论时间' `comm_userid` int(11) default NULL, '用户Id' `comm_type` int(11) default NULL, '评论类型 1歌单2专辑3歌曲' `comm_targetid` int(11) default NULL, '目标id,可能是歌单id、专辑id、歌曲id' PRIMARY KEY (`comm_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 11. 轮播图表首页一般会轮流播放三四张,一般过期的可以失效掉,而不是直接删除。 CREATE TABLE `slide` ( `slide_id` int(11) NOT NULL auto_increment, `slide_img` varchar(255) default NULL, '轮播图路径' `slide_albumid` int(11) default NULL, '专辑id' `slide_valid` int(11) default NULL, '是否有效' PRIMARY KEY (`slide_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |