Я разрабатываю реляционную базу данных для системы, которая хранит информацию о некоторых типах продуктов, розничных торговцев и поставщиков для розничных продавцов.Дизайн базы данных - сохранение эквивалентности
Некоторые поставщики продают те же продукты, - тем не менее, они не имеют стандарт для идентификации продуктов, что означает Поставщику может иметь продукт с идентификатором 618261, что эквивалентно поставщиком продукта Б 007162.
Проблема в том, что я не хочу хранить один и тот же продукт несколько раз для разных поставщиков. В настоящее время у меня есть следующие таблицы:
эквивалентность
- supplier1_id
- supplier2_id
- supplier1_product_id
- supplier2_product_id
продукт
- идентификатор (генерируется)
- supplier_id
- supplier_product_id
Это кажется плохой идеей. Всякий раз, когда что-то вставляется в «продукт»,
- «эквивалентность» должны быть запрошено, чтобы найти любую эквивалентность
- «продукт» должен быть запрошен, чтобы найти, если эквивалентные продукты уже хранятся
- если эквиваленты не найдены , продукт может быть вставлен
Есть ли более разумный способ сделать это?