none
Составной уникальный индекс на столбцы из разных таблиц RRS feed

  • Вопрос

  • Добрый день!

    Ребят есть вопрос по БД (PostreSQL). Надеюсь на Ваше понимание. Заранее спасибо!

    Вопрос в следующем, нужно создать уникальную составную пару из двух столбцов, которые принадлежат разным таблицам. Структура таблиц следующая (придумал сам от фонаря, чтобы передать суть так как таблицы в действительности громоздкие):

    orders (order_id, name, date_creation) ,  shops (shop_id, package_code, order) и products(product_id,  shop, product_name)   

    таблица  products ссылается на shops  (shop -> shop_id), 

    таблица shops ссылается на orders (order -> order_id), 

    Нужно чтобы для каждого заказа были уникальные название продуктов , то есть составной уникальный индекс (order_id, product_name). То есть чтобы при добавлении product_name (названия продукта) в таблицу products,  БД проверяла, есть ли такое названия для этого же заказа  order_id. Если есть, то запрещала добавить.

    На форумах пишут, что это можно сделать с помощью триггера, либо вычисляемого столбца. Буду рад любому коду. Заранее спасибо!



    Андрей

    2 июля 2019 г. 12:17