健身房会员管理系统数据库代码生成mysql
时间: 2025-01-08 21:51:24 浏览: 2
### 创建健身房会员管理系统的MySQL数据库结构
为了构建一个高效且易于维护的健身房会员管理系统,合理的数据库设计至关重要。以下是针对该系统的核心表及其字段定义。
#### 数据库初始化脚本
```sql
CREATE DATABASE IF NOT EXISTS gym_management_system;
USE gym_management_system;
-- 用户角色表
CREATE TABLE roles (
role_id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) UNIQUE NOT NULL COMMENT '角色名称'
);
-- 用户信息表
CREATE TABLE users (
user_id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(100) UNIQUE NOT NULL COMMENT '用户名',
password_hash CHAR(64) NOT NULL COMMENT '密码哈希值',
email VARCHAR(150) UNIQUE NOT NULL COMMENT '电子邮件地址',
phone_number VARCHAR(20),
registration_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '注册日期',
last_login TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后登录时间',
role_id INT,
FOREIGN KEY (role_id) REFERENCES roles(role_id)
);
-- 会员信息表
CREATE TABLE members (
member_id INT AUTO_INCREMENT PRIMARY KEY,
real_name VARCHAR(100) NOT NULL COMMENT '真实姓名',
gender ENUM('male', 'female') NOT NULL COMMENT '性别',
birthdate DATE NOT NULL COMMENT '出生日期',
join_date DATE NOT NULL COMMENT '入会日期',
expire_date DATE NOT NULL COMMENT '会员到期日',
status ENUM('active', 'inactive') DEFAULT 'active' COMMENT '状态',
user_id INT UNIQUE,
FOREIGN KEY (user_id) REFERENCES users(user_id)
);
-- 教练信息表
CREATE TABLE trainers (
trainer_id INT AUTO_INCREMENT PRIMARY KEY,
real_name VARCHAR(100) NOT NULL COMMENT '真实姓名',
certification TEXT COMMENT '资格证书描述',
experience_years TINYINT UNSIGNED COMMENT '从业年限',
specialty TEXT COMMENT '擅长领域',
user_id INT UNIQUE,
FOREIGN KEY (user_id) REFERENCES users(user_id)
);
-- 训练课程表
CREATE TABLE courses (
course_id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255) NOT NULL COMMENT '课程标题',
description TEXT COMMENT '课程简介',
duration TIME NOT NULL COMMENT '持续时长',
capacity SMALLINT UNSIGNED NOT NULL COMMENT '最大人数',
start_time DATETIME NOT NULL COMMENT '开课时间',
end_time DATETIME NOT NULL COMMENT '结束时间',
trainer_id INT,
FOREIGN KEY (trainer_id) REFERENCES trainers(trainer_id)
);
-- 预约记录表
CREATE TABLE bookings (
booking_id INT AUTO_INCREMENT PRIMARY KEY,
course_id INT NOT NULL,
member_id INT NOT NULL,
book_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '预约时间',
attend_status ENUM('booked', 'attended', 'canceled') DEFAULT 'booked' COMMENT '出席情况',
FOREIGN KEY (course_id) REFERENCES courses(course_id),
FOREIGN KEY (member_id) REFERENCES members(member_id)
);
```
上述SQL语句创建了一个完整的健身房会员管理系统所需的数据库结构[^1]。此结构涵盖了用户认证、权限控制、会员资料存储、教练档案保存以及课程安排和预约管理等方面的需求。
阅读全文