У меня есть несколько таблица формирования цепочки, как это:базы данных Нормализация цепочки
table1
product_id SERIAL NOT NULL,
name varchar,
таблица2 (отдельно от table1, так как же имя продукта, но может быть другой цвет)
table2_id
product_id integer,
color varchar,
FOREIGN KEY (product_id) REFERENCES table1 (product_id) ON DELETE CASCADE
Таблица3 (отдельный из таблица2 т.к. такой же товар цвет но бывает другой размер)
table3_id
table2_id integer,
size varchar,
FOREIGN KEY (table2_id) REFERENCES table2 (table2_id) ON DELETE CASCADE
например, данные о продукте может быть
a chair (name) - red (color) - 100cm(size)
a chair (name) - red (color) - 200cm(size)
b chair (name) - green (color) - 100cm(size)
b chair (name) - green (color) - 200cm(size)
c chair (name) - black (color) - s(size)
c chair (name) - black (color) - m(size)
d chair (name) - black (color) - null(size)
e chair (name) - gold (color) - big(size)
e chair (name) - gold (color) - small(size)
если следовать нормализация удалить дубликат, так что я разделить их как 3 таблицы, но я не уверен, цепочки, как этот правильной или нет
Что вы делаете, это * не * нормализация. Нормализация не вводит новые столбцы (например, идентификаторы). Вы также не предоставляете информацию, необходимую для нормализации (FD и JD). И если product_ids 1: 1 с именами в таблице1, тогда таблица примеров данных уже * есть * в 5NF. Итак, у вас есть некоторые заблуждения. Я уже объяснил это [здесь] (http://stackoverflow.com/questions/31841269/postgresql-database-design-for-ecommerce) (только что отредактирован). – philipxy
1. Ваши «потому что» непонятны, и вы не объясняете связь между каждым «потому что» и существование соответствующей таблицы. 2. * Пожалуйста, скажите a), что строка в вашей «таблице данных продукта» указывает в терминах product_id, имени, цвета и размера и b) все случаи, когда значение столбца должно всегда отображаться с тем же значением подзаголовка для набор колонок, который его не включает. – philipxy