44 lines
1.9 KiB
SQL
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;
|