Для слабой связи я предлагаю вам создать отдельные Items
и Price
таблицы и иметь еще одну таблицу (называемую Junction table ) Item_Price
, которая отображаетмного предметов по разным ценам, как вам нравится.
Это называется отношение "многие ко многим"
По сути, оно связывает Item
со своим itemId с Price
с priceId и сохраняет эту ссылку в Item_Price
itemPriceId (или как вы называете 3-й первичный ключ)
Вот примерная диаграмма EDIT: извините за предыдущую диаграмму.
Вот пример SQL DDL из 3 таблиц, плюс 2 соединительные таблицы для привязки товара к цене и продавца к товару.
CREATE TABLE Item (
item_id int PRIMARY KEY,
..
..
)
CREATE TABLE Price (
price_id int PRIMARY KEY,
..
..
)
CREATE TABLE Seller (
seller_id int PRIMARY KEY,
..
..
)
-- This is the junction table for Item to Price mapping.
CREATE TABLE Item_Price (
item_id int REFERENCES Item (item_id),
price_id int REFERENCES Price (price_id),
PRIMARY KEY (item_id, price_id)
)
-- This is the junction table for Seller to Item mapping.
CREATE TABLE Seller_Item (
seller_id int REFERENCES Seller (seller_id),
item_id int REFERENCES Item (item_id),
PRIMARY KEY (seller_id, item_id)
)