写出听音乐平台的数据库模块并且创建数据库
时间: 2023-08-13 17:08:35 浏览: 43
听音乐平台的数据库模块可以包含以下表格:
1. 用户表格(user):存储用户的基本信息,例如用户名、密码、邮箱、手机号码等。
2. 歌曲表格(song):存储歌曲的基本信息,例如歌曲名、歌手、专辑、时长、类型、发行时间等。
3. 歌单表格(playlist):存储歌单的基本信息,例如歌单名、创建者、描述、收藏数、歌曲数等。
4. 收藏表格(favorite):存储用户收藏的歌曲和歌单,包括用户ID、歌曲ID和歌单ID。
5. 播放记录表格(play_history):存储用户的播放记录,包括用户ID、歌曲ID、播放时间和播放次数等。
除了上述表格,还可以根据实际需要增加其他表格,例如评论表格、标签表格等。
下面是一个MySQL的数据库创建脚本,可以根据实际情况进行修改:
```
CREATE DATABASE `music_platform` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
USE `music_platform`;
CREATE TABLE `user` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`username` VARCHAR(50) NOT NULL,
`password` VARCHAR(50) NOT NULL,
`email` VARCHAR(100) NOT NULL,
`phone` VARCHAR(20) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE INDEX `username` (`username`),
UNIQUE INDEX `email` (`email`),
UNIQUE INDEX `phone` (`phone`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
CREATE TABLE `song` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(100) NOT NULL,
`artist` VARCHAR(100) NOT NULL,
`album` VARCHAR(100) NOT NULL,
`duration` INT(11) NOT NULL,
`type` VARCHAR(50) NOT NULL,
`release_date` DATE NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
CREATE TABLE `playlist` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(100) NOT NULL,
`creator_id` INT(11) NOT NULL,
`description` VARCHAR(500) DEFAULT NULL,
`favorite_count` INT(11) NOT NULL DEFAULT '0',
`song_count` INT(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
INDEX `creator_id` (`creator_id`),
CONSTRAINT `playlist_ibfk_1` FOREIGN KEY (`creator_id`) REFERENCES `user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
CREATE TABLE `favorite` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`user_id` INT(11) NOT NULL,
`song_id` INT(11) DEFAULT NULL,
`playlist_id` INT(11) DEFAULT NULL,
PRIMARY KEY (`id`),
INDEX `user_id` (`user_id`),
INDEX `song_id` (`song_id`),
INDEX `playlist_id` (`playlist_id`),
CONSTRAINT `favorite_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `favorite_ibfk_2` FOREIGN KEY (`song_id`) REFERENCES `song` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `favorite_ibfk_3` FOREIGN KEY (`playlist_id`) REFERENCES `playlist` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
CREATE TABLE `play_history` (
`user_id` INT(11) NOT NULL,
`song_id` INT(11) NOT NULL,
`play_time` DATETIME NOT NULL,
`play_count` INT(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`user_id`,`song_id`),
INDEX `song_id` (`song_id`),
CONSTRAINT `play_history_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `play_history_ibfk_2` FOREIGN KEY (`song_id`) REFERENCES `song` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
```
以上仅为示例,具体的数据库模型设计需要根据实际需求进行修改和完善。