Create partners__partner table CREATE TABLE partners__partner ( id uuid PRIMARY KEY, code varchar(64) NOT NULL, name varchar(256) NOT NULL, type varchar(16) NOT NULL, tax_id varchar(64), website varchar(256), email varchar(256), phone varchar(64), active boolean NOT NULL DEFAULT true, ext jsonb NOT NULL DEFAULT '{}'::jsonb, created_at timestamptz NOT NULL, created_by varchar(128) NOT NULL, updated_at timestamptz NOT NULL, updated_by varchar(128) NOT NULL, version bigint NOT NULL DEFAULT 0 ); CREATE UNIQUE INDEX partners__partner_code_uk ON partners__partner (code); CREATE INDEX partners__partner_type_idx ON partners__partner (type); CREATE INDEX partners__partner_active_idx ON partners__partner (active); CREATE INDEX partners__partner_ext_gin ON partners__partner USING GIN (ext jsonb_path_ops); DROP TABLE partners__partner; Create partners__address table (FK to partners__partner) CREATE TABLE partners__address ( id uuid PRIMARY KEY, partner_id uuid NOT NULL REFERENCES partners__partner(id), address_type varchar(16) NOT NULL, line1 varchar(256) NOT NULL, line2 varchar(256), city varchar(128) NOT NULL, region varchar(128), postal_code varchar(32), country_code varchar(2) NOT NULL, is_primary boolean NOT NULL DEFAULT false, created_at timestamptz NOT NULL, created_by varchar(128) NOT NULL, updated_at timestamptz NOT NULL, updated_by varchar(128) NOT NULL, version bigint NOT NULL DEFAULT 0 ); CREATE INDEX partners__address_partner_idx ON partners__address (partner_id); CREATE INDEX partners__address_country_idx ON partners__address (country_code); DROP TABLE partners__address; Create partners__contact table (FK to partners__partner, PII-tagged) CREATE TABLE partners__contact ( id uuid PRIMARY KEY, partner_id uuid NOT NULL REFERENCES partners__partner(id), full_name varchar(256) NOT NULL, role varchar(128), email varchar(256), phone varchar(64), active boolean NOT NULL DEFAULT true, created_at timestamptz NOT NULL, created_by varchar(128) NOT NULL, updated_at timestamptz NOT NULL, updated_by varchar(128) NOT NULL, version bigint NOT NULL DEFAULT 0 ); CREATE INDEX partners__contact_partner_idx ON partners__contact (partner_id); CREATE INDEX partners__contact_active_idx ON partners__contact (active); DROP TABLE partners__contact;