Separate source identity from your internal product
Supplier Alder's 00123 and supplier Birch's 00123 are separate source keys in this synthetic case. Neither their equal code nor a similar description establishes that they sell the same item. Keep a supplier identifier beside the exact local SKU, then use an explicitly approved mapping to any internal product.
- Require both parts of the source key before matching.
- Do not auto-map on a fuzzy product name.
- An unknown source key should remain unassigned until the purchasing owner approves its mapping.
A constraint protects the rule you choose
PostgreSQL supports a composite unique constraint or primary key. A unique constraint alone can permit null-containing keys by default, so missing supplier or SKU needs its own validation. A foreign key can keep a mapping attached to an existing row, but cannot prove that the purchasing owner chose the correct physical product. Inspect constraints and application lookup logic separately.
- Two independent supplier and SKU references do not establish the intended supplier-SKU pair.
- Do not change a live key or add a constraint before checking historical collisions.
Acceptance includes a collision and an unknown
Give two invented suppliers the same SKU but different internal products and stock quantities. Updating Alder must leave Birch unchanged. A third unknown source key must enter the agreed exception path, not silently create or map a product. Keep the expected key-to-product mapping beside the result.
- The supplied key matrix is an authored specification; no database migration or supplier matching has been performed.
- A product description or equal record count is not acceptance evidence.
Priced enquiry and non-fit
A wrong lookup in existing code may fit the synthetic-data bug repair, from £295 after bounded reproduction and a fixed quote. One new exception-review interaction in an existing web app may fit the feature-preview offer, from £750, only with an existing isolated private preview and no payment or personal-data changes. Building a product-master system, cleaning real mappings or migrating database keys needs separate scope. Send the invented collision and desired result initially; do not send live supplier files, code or credentials. Prices are untested proposals; work and payment require the relevant agreement and sign-off.
- If nobody can authorise the mapping policy, purchasing ownership must be resolved before automation.
Sources and limits
- PostgreSQL constraints: multicolumn uniqueness, primary and foreign keys Checked 2026-10-11.
- A composite unique constraint applies to the combination, not each column individually.
- Primary-key columns are non-null.
- A foreign key enforces a reference, not a business judgement that two items are equivalent.
- Existing repair offer Checked 2026-10-11.
- Existing feature-preview offer Checked 2026-10-11.