Все -
Мне нужна помощь в разработке таблицы для базы данных Postgre SQL. У меня есть таблица продуктов т.е.
CREATE TABLE products (
product_id integer PRIMARY KEY,
product_name text,
price numeric);
INSERT INTO products (product_id, product_name, price) VALUES
(DEFAULT, 'Purple Widget', '5.50'),
(DEFAULT, 'Green Widget', '1.50'),
(DEFAULT, 'Yellow Widget', '5.50'),
(DEFAULT, 'Spotted Widget', '6.50'),
(DEFAULT, 'Extra Large Purple Widget', '102.50'),
(DEFAULT, 'Extra Large Spotted Widget', '101.50');
Я хочу начать продавать пакет товаров (несколько товаров, одна цена). Я пытаюсь выяснить структуру таблицы пакетов. Мне не нравятся два варианта:
CREATE TABLE packages (
package_id integer PRIMARY KEY,
package_name text,
package_products varchar(50),
price numeric);
INSERT INTO packages (package_id, package_name, package_products, price) VALUES
(DEFAULT, 'Small Widgets', '0,1,2,3', '6.25'),
(DEFAULT, 'Large Widgets', '5,6', '200.00');
или
CREATE TABLE packages (
package_id integer PRIMARY KEY,
package_name text,
product_id1 integer,
product_id2 integer,
product_id3 integer,
product_id4 integer,
product_id5 integer,
price numeric);
INSERT INTO packages (package_id, package_name, product_id1, product_id2,
product_id3, product_id4, product_id5, price) VALUES
(DEFAULT, 'Small Widgets', '0', '1' ,'2', '3', NULL, '6.25'),
(DEFAULT, 'Large Widgets', '5', '6', NULL, NULL, NULL, '200.00');
Я не могу переместить логику пакетов в таблицу продуктов, поскольку каждый продукт может быть в нескольких пакетах Обе эти опции, описанные выше, требуют много работы на веб-уровне, плюс они кажутся действительно неэффективными.
Идеи? Заранее спасибо!