From b66a0907d9e99ecb8ab26b808008f330c92f633a Mon Sep 17 00:00:00 2001 From: Wonder Date: Fri, 10 Oct 2025 14:53:37 +0800 Subject: [PATCH] =?UTF-8?q?=20=F0=9F=93=9DDocs:=20=E7=BC=96=E5=86=99?= =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=20sql=20=E8=AF=AD=E5=8F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- init.sql | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 init.sql diff --git a/init.sql b/init.sql new file mode 100644 index 0000000..6810a91 --- /dev/null +++ b/init.sql @@ -0,0 +1,80 @@ +-- init.sql +-- 用户表 +CREATE TABLE users ( + id INT PRIMARY KEY AUTO_INCREMENT COMMENT "用户id", + username VARCHAR(50) UNIQUE NOT NULL COMMENT "用户名", + password VARCHAR(255) NOT NULL COMMENT "密码", + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT "创建时间", + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT "更新时间" +); + +-- 角色表 +CREATE TABLE roles ( + id INT PRIMARY KEY AUTO_INCREMENT COMMENT "角色id", + name VARCHAR(50) UNIQUE NOT NULL COMMENT "角色名称", + description TEXT COMMENT "角色描述", + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT "创建时间", + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT "更新时间" +); + +-- 权限表 +CREATE TABLE permissions ( + id INT PRIMARY KEY AUTO_INCREMENT COMMENT "权限id", + name VARCHAR(100) UNIQUE NOT NULL COMMENT "权限名称", + description TEXT "权限描述", + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT "创建时间", + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT "更新时间" +); + +-- 用户-角色关联表 +CREATE TABLE user_roles ( + user_id INT COMMENT "用户id", + role_id INT COMMENT "角色id", + PRIMARY KEY (user_id, role_id), + FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE, + FOREIGN KEY (role_id) REFERENCES roles(id) ON DELETE CASCADE +); + +-- 角色-权限关联表 +CREATE TABLE role_permissions ( + role_id INT COMMENT "角色id", + permission_id INT COMMENT "权限id", + PRIMARY KEY (role_id, permission_id), + FOREIGN KEY (role_id) REFERENCES roles(id) ON DELETE CASCADE, + FOREIGN KEY (permission_id) REFERENCES permissions(id) ON DELETE CASCADE +); + +-- 商品表 +CREATE TABLE products ( + id INT PRIMARY KEY AUTO_INCREMENT COMMENT "商品id", + name VARCHAR(255) NOT NULLCOMMENT "商品名称", + description TEXT COMMENT "商品描述", + price DECIMAL(10, 2) NOT NULL COMMENT "商品价格", + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT "创建时间", + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT "更新时间" +); + +-- 插入默认角色 +INSERT INTO roles (name, description) VALUES +('USER', '普通用户'), +('ADMIN', '管理员'); + +-- 插入默认权限 +INSERT INTO permissions (name, description) VALUES +('PRODUCT_READ', '读取商品信息'), +('PRODUCT_CREATE', '创建商品'), +('PRODUCT_UPDATE', '更新商品'), +('PRODUCT_DELETE', '删除商品'); + +-- 给 ADMIN 角色分配所有权限 +INSERT INTO role_permissions (role_id, permission_id) +SELECT r.id, p.id +FROM roles r, permissions p +WHERE r.name = 'ADMIN'; + + +-- 给 USER 角色分配读取权限 +INSERT INTO role_permissions (role_id, permission_id) +SELECT r.id, p.id +FROM roles r, permissions p +WHERE r.name = 'USER' and p.name = 'PRODUCT_READ'