Итак, у вас будет таблица Исполнитель, Продукт и Контрактор_Продукт. Что-то вроде (в псевдо-sql):
create table Contractor {
id int primary key,
name varchar(50) not null,
...
}
create table Product {
id int primary key,
name varchar(50) not null,
...
}
create table Contractor_Product {
contractorid int references Contractor(id),
productid int references Product(id),
...,
primary key contractorid, productid
}
Теперь я не на 100% уверен, что вы хотите из таблицы «Избранное». Это может быть не таблица, а запрос. Или, может быть, вы хотите таблицу, которая похожа на таблицу Contractor_Product? Или просто еще один столбец "isfavorite bool default = false" в таблице Contractor_Product?
Надеюсь, это поможет!