несколько цен 1 шт - PullRequest
       2

несколько цен 1 шт

0 голосов
/ 28 февраля 2012

Мне интересно, будет ли это лучшим способом построить стол для предмета, стоимость которого может превышать 1.Каждый продукт идентифицируется по номеру модели.Должен ли я использовать префикс перед номером модели для каждого отдельного продавца?Я не могу использовать номер модели для первичного ключа.Например:

seller_product_id      model_number     seller      price
SELLER_1_MODEL_NUMBER  MODEL_NUMBER     seller_1    9.99
SELLER_2_MODEL_NUMBER  MODEL_NUMBER     seller_2    19.99

Ответы [ 3 ]

2 голосов
/ 28 февраля 2012

Один атрибут, который имеет много свойств? Похоже, one-to-many отношения ... перейти к новой таблице есть внешний ключ поможет вам.

Products
prod_id (PK) | model_no

Sellers
seller_id(PK)|seller_name

Pricing
price_id (PK)|price|prod_id (FK) | seller_id(FK)
2 голосов
/ 28 февраля 2012

Для слабой связи я предлагаю вам создать отдельные Items и Price таблицы и иметь еще одну таблицу (называемую Junction table ) Item_Price, которая отображаетмного предметов по разным ценам, как вам нравится.

Это называется отношение "многие ко многим"

По сути, оно связывает Item со своим itemId с Price с priceId и сохраняет эту ссылку в Item_Price itemPriceId (или как вы называете 3-й первичный ключ)

Вот примерная диаграмма EDIT: извините за предыдущую диаграмму.enter image description here

Вот пример 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)
)
0 голосов
/ 28 февраля 2012

да Вы можете использовать префикс перед номером модели для каждого отдельного продавца.

Если у вас все еще есть что-то, дайте мне знать больше прояснить вашу проблему

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...