-- 物料默认供应商、制造商及伙伴制造商身份。选择目标数据库后执行一次。 -- 前置条件:已完成公司隔离升级,存在 schema_migrations。 -- 不修改已有伙伴身份;物料新字段默认 NULL。 SET NAMES utf8mb4; ALTER TABLE organization_partners ADD COLUMN is_manufacturer BOOLEAN NOT NULL DEFAULT FALSE AFTER is_supplier, ADD UNIQUE KEY uk_organization_partners_org_id(organization_id,id); ALTER TABLE materials ADD COLUMN supplier_id BIGINT NULL COMMENT 'Default supplier organization_partner ID' AFTER manufacturer_model, ADD COLUMN manufacturer_id BIGINT NULL COMMENT 'Manufacturer organization_partner ID' AFTER supplier_id, ADD KEY idx_materials_org_supplier(organization_id,supplier_id), ADD KEY idx_materials_org_manufacturer(organization_id,manufacturer_id), ADD CONSTRAINT fk_materials_supplier FOREIGN KEY(organization_id,supplier_id) REFERENCES organization_partners(organization_id,id) ON DELETE RESTRICT ON UPDATE RESTRICT, ADD CONSTRAINT fk_materials_manufacturer FOREIGN KEY(organization_id,manufacturer_id) REFERENCES organization_partners(organization_id,id) ON DELETE RESTRICT ON UPDATE RESTRICT; -- 复合外键约束组织归属,供应商/制造商角色匹配由业务接口校验。 INSERT INTO schema_migrations(version,status,completed_at,details) VALUES('2026-10-12-material-partner-roles','completed',NOW(),JSON_OBJECT('version','2026-10-12-material-partner-roles','source','upgrade'));