Вставка продуктов в таблицу в иерархических отношениях категории и родителя в модели соседнего списка

У меня есть таблица категории, состоящая из модели списка смежности:

id  name             parent_id
------------------------------
1   Clothing         0
2   Books            0
3   Computers        0
4   Mobiles          0
5   Movies           0
6   Music            0
7   Mens             1
8   Shirts           7
9   Formal Trousers  7
10  Jeans            7

и таблица product_category:

product_id fk
category_id fk
parent_id

и иметь таблицу продуктов:

product_id
category_id
parent_id
prod_name
genre
unit price
image

Как я могу вставить продукты в таблицу, которая имеет ссылку на идентификатор родителя и, в свою очередь, имеет ссылку на категорию. так что я могу получить продукты из parent_id и категорий. и я должен определить parent_id как первичный ключ.. помощь оценена.. спасибо заранее..

1 ответ

Решение

Если предположить, что отношения между продуктами и категориями - это M:N, а категории и продукты образуют иерархию (независимо друг от друга), ваша модель должна выглядеть следующим образом:

категория:

category_id PK
parent_id FK -> category.category_id
(other fields...)

товар:

product_id PK
parent_id FK -> product.product_id
(other fields...)

Категория продукта:

product_id FK -> product.product_id
category_id FK -> category.category_id
PK (product_id, category_id)

Я не совсем уверен, что вы подразумеваете под: "как я могу вставить продукты в таблицу, которая имеет ссылку на идентификатор родителя и, в свою очередь, имеет ссылку на категорию"? Предполагая, что вы знаете идентификатор родительского продукта и идентификатор категории, вы можете просто:

INSERT INTO product (product_id, parent_id, other fields...)
VALUES (whatever, known parent id, other values...)

А затем подключите его к категории:

INSERT INTO product_category (product_id, category_id)
VALUES (what you inserted above, known category id)
Другие вопросы по тегам