53 lines
2.6 KiB
SQL
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;
|