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

53 lines
2.6 KiB
SQL

CREATE TABLE business_partners (
id BIGINT NOT NULL AUTO_INCREMENT,
legal_name VARCHAR(200) NOT NULL,
unified_credit_code VARCHAR(50) NULL,
contact_name VARCHAR(100) NULL,
contact_phone VARCHAR(50) NULL,
address VARCHAR(500) NULL,
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_business_partners_credit_code (unified_credit_code)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE organization_partners (
id BIGINT NOT NULL AUTO_INCREMENT,
organization_id BIGINT NOT NULL,
business_partner_id BIGINT NOT NULL,
partner_code VARCHAR(50) NOT NULL,
is_supplier BOOLEAN NOT NULL DEFAULT FALSE,
is_customer BOOLEAN NOT NULL DEFAULT FALSE,
supplier_status VARCHAR(20) NULL,
customer_status VARCHAR(20) NULL,
settlement_currency CHAR(3) NULL,
payment_terms VARCHAR(200) NULL,
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_organization_partners_org_partner (organization_id, business_partner_id),
UNIQUE KEY uk_organization_partners_org_code (organization_id, partner_code),
CONSTRAINT fk_organization_partners_org FOREIGN KEY (organization_id) REFERENCES organizations(id) ON DELETE RESTRICT,
CONSTRAINT fk_organization_partners_partner FOREIGN KEY (business_partner_id) REFERENCES business_partners(id) ON DELETE RESTRICT
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE material_suppliers (
id BIGINT NOT NULL AUTO_INCREMENT,
organization_id BIGINT NOT NULL,
material_id BIGINT NOT NULL,
organization_partner_id BIGINT NOT NULL,
price DECIMAL(20,6) NOT NULL,
currency CHAR(3) NOT NULL,
minimum_order_quantity DECIMAL(20,6) NOT NULL DEFAULT 0,
lead_time_days INT NOT NULL DEFAULT 0,
is_preferred BOOLEAN NOT NULL DEFAULT FALSE,
effective_from DATE NOT NULL,
effective_to DATE NULL,
status VARCHAR(20) NOT NULL DEFAULT 'active',
PRIMARY KEY (id),
KEY idx_material_suppliers_material (organization_id, material_id),
CONSTRAINT fk_material_suppliers_org FOREIGN KEY (organization_id) REFERENCES organizations(id) ON DELETE RESTRICT,
CONSTRAINT fk_material_suppliers_material FOREIGN KEY (material_id) REFERENCES materials(id) ON DELETE RESTRICT,
CONSTRAINT fk_material_suppliers_partner FOREIGN KEY (organization_partner_id) REFERENCES organization_partners(id) ON DELETE RESTRICT
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;