某个数据库记录乐队、乐队成员、专辑、歌曲、演唱会和歌迷的信息:
每个乐队包括名称、成立时间等,每个乐队有一个队长;
乐队每位成员包括名字、性别、年龄、乐队分工等,每个成员有加入乐队的时间,(如果中途离开)有离开乐队的时间;
专辑包括专辑名称、发表时间、表演乐队、发行公司等;
歌曲包括歌曲名称、创作者姓名、所在专辑等;
演唱会包括举办时间、举办地点、演出乐队等;
歌迷包括姓名、性别、年龄、职业等。
规定每个乐队只有一名队长,每个乐队成员同一时期只能加入一个乐队,一个乐队发行多张专辑,专辑中含有多首歌曲,每场演唱会都有表演歌单,乐队演唱多首歌曲,同一首歌可以被多个乐队演唱,歌迷可以喜欢多个乐队、专辑及歌曲,歌迷可参与多场演唱会。
根据此业务场景建立相应的数据库系统与应用系统。
本系统基于前后端分离的思路进行开发,前端基于React开发,后端开发语言为Java 17,使用Spring Boot 2.7与Mybatis-plus框架。具体的开发工具、开发框架和系统依赖见下表。
系统分为管理端、乐队端和歌迷端。管理端、乐队端和歌迷端均通过统一身份鉴别进行登录与权限分配,系统的登录用户名和角色均为直接使用MySQL自带的用户机制和角色机制,而不是利用基本表做的逻辑映射,即当用户在本系统登录时,系统会将当前会话的数据源切换到用户对应的同名MySQL用户下。利用动态数据源和上文提到的视图机制可以最大限度地保证数据的安全。
管理端提供乐队管理与歌迷管理两大功能,其主要作用是将应用程序与MySQL的角色、用户之间打通。管理员可以利用管理端轻松的创建和删除乐队和歌迷账号。
乐队端分为乐队基本信息、成员管理、歌曲管理、专辑管理、演唱会管理、乐队粉丝列表等功能。乐队管理员利用分配到的乐队账号登录到平台后,可以方便地查看并维护自己乐队的相关信息。
歌迷端分为歌迷基本信息、乐队信息、歌曲信息、专辑信息和演唱会信息五大板块。歌迷可通过本系统查看自己喜欢的乐队、歌曲、专辑列表,暂未喜欢的乐队、歌曲、专辑列表和全部的乐队、歌曲、专辑列表,并可以喜欢或取消喜欢乐队、歌曲和专辑,报名或取消报名演唱会。系统还为歌迷提供了查看乐队、歌曲、专辑、演唱会具体详情的功能。
本教程使用Ubuntu 22.04 LTS进行演示安装,安装的docker版本为20.10.22,docker compose版本为2.14.2。
sudo apt-get update
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get install docker-ce docker-ce-cli containerd.io
sudo systemctl enable docker
sudo systemctl start docker
输入sudo docker info
,出现类似下图的输出表示安装成功。
sudo curl -sL https://get.daocloud.io/docker/compose/releases/download/v2.14.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
将代码上传至服务器,并进入代码文件夹内
docker-compose up -d
出现如下图所示的输出表示正在进行部署
出现如下图所示的输出后表示部署成功
在浏览器中输入http://127.0.0.1:8088/user/login
即可进入系统。
输入用户名admin,密码123456,选择管理员身份登陆系统。
点击创建登录用户,输入待初始化的密码后,即可创建对应的乐队登录账号和歌迷登陆账号。