Если предположить, что ваш vendor_identifier является внешним ключом, относящимся к таблице поставщиков, а product_identifier является внешним ключом, относящимся к таблице продуктов, я бы создал поле автономного номера (возможно, vendor_product_identifier?) В качестве основного ключа таблицы, которая содержит как vendor_id, так и product_id. Затем я бы поместил уникальный индекс в комбинацию vendor_id и product_id.
Итак, общая идея будет такой:
Vendor
------
vendor_identifier PK
name
phone
etc...
Product
-------
product_identifier PK
name
category
etc...
Vendor_Product
--------------
vendor_product_identifier //"AUTONUMBER PK"
vendor_identifier //"FK to Vendor, and part of COMBOINDEX1"
product_identifier //"FK to Vendor, and part of COMBOINDEX1"
etc...
Наличие нового ключа для vendor_product дает вам только один ключ для передачи на стороне приложения для ссылки на комбинацию как поставщика, так и продукта. Наличие уникального индекса для комбинации vendor_id и product_id в таблице vendor_product гарантирует, что вы также не получите дублирующихся записей для этой комбинации данных (хотя это должен быть уникальный индекс, а не просто индекс) .