MySQL数据库学习-基础DDL

2025-07-30

create database industrial_project_management;
use industrial_project_management;
create table projects(
	project_id int auto_increment primary key,
	project_name varchar(100) not null,
	description TEXT null,
	start_date date not null,
	end_date date null,
	status enum('Planning','Developing','Testing','Completed') not null default 'Planning'
	
);

create table users(
	user_id int auto_increment primary key,
	username varchar(100) not null unique,
	email varchar(50) not null unique,
	role enum('Developer','Tester','Product Manager') not null default 'Developer'
);

create table tasks(
	task_id int auto_increment primary key,
	project_id int not null,
	task_name varchar(100) not null,
	description text null,
	assigned_to_user_id int(20) null,
	due_date date null comment '任务截止日期',
	status enum('Open','In Progress','Done','Blocked') not null default 'Open',
	FOREIGN KEY(project_id) REFERENCES projects(project_id) on delete cascade,
	FOREIGN KEY(assigned_to_user_id) REFERENCES users(user_id) on delete cascade
	
);

alter table projects add responsible_user_id int(10) null,
	add foreign key(responsible_user_id) references users(user_id) on delete set null;

alter table users modify email varchar(50) null;

alter table tasks modify status enum('Open','In Progress','Done','Blocked','New') not null default 'New';
alter table tasks change description task_details  text null;

alter table tasks drop due_date;
drop database industrial_project_management;

← 返回