material_manage_system/scripts/migrations/004_phase1_warehouses.sql
2026-09-16 16:29:04 +08:00

44 lines
1.9 KiB
SQL

CREATE TABLE warehouses (
id BIGINT NOT NULL AUTO_INCREMENT,
organization_id BIGINT NOT NULL,
code VARCHAR(50) NOT NULL,
name VARCHAR(150) NOT NULL,
status VARCHAR(20) NOT NULL DEFAULT 'active',
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (id),
UNIQUE KEY uk_warehouses_org_code (organization_id, code),
CONSTRAINT fk_warehouses_org FOREIGN KEY (organization_id) REFERENCES organizations(id) ON DELETE RESTRICT
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE warehouse_locations (
id BIGINT NOT NULL AUTO_INCREMENT,
warehouse_id BIGINT NOT NULL,
code VARCHAR(50) NOT NULL,
name VARCHAR(150) NOT NULL,
status VARCHAR(20) NOT NULL DEFAULT 'active',
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (id),
UNIQUE KEY uk_warehouse_locations_warehouse_code (warehouse_id, code),
CONSTRAINT fk_warehouse_locations_warehouse FOREIGN KEY (warehouse_id) REFERENCES warehouses(id) ON DELETE RESTRICT
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE user_warehouses (
user_id BIGINT NOT NULL,
warehouse_id BIGINT NOT NULL,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (user_id, warehouse_id),
CONSTRAINT fk_user_warehouses_user FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
CONSTRAINT fk_user_warehouses_warehouse FOREIGN KEY (warehouse_id) REFERENCES warehouses(id) ON DELETE RESTRICT
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
INSERT INTO warehouses (id, organization_id, code, name, status)
VALUES (1, 1, 'DEFAULT', '默认仓库', 'active');
INSERT INTO warehouse_locations (id, warehouse_id, code, name, status)
VALUES (1, 1, 'MAIN', '主库位', 'active');
INSERT INTO user_warehouses (user_id, warehouse_id)
SELECT id, 1 FROM users;