|
|
|
| Делаю инетрнет магазин. Как дело дошло до корзины, обнаружил, что у меня две таблицы с товарами (у меня 2 группы товаров), и соответственно при добавлении ID в корзину, возникает вопрос - из какой группы товар добавили.
Можно конечно еще и храниьт в корине кроме ID товара еще и индентификатор группы - но таблицы у меня разные по структуре, и обраточкик этого геморроя писать геморно (простите за каламбур).
Мастера! Хочу поинтерисоваться следующим - как правильно нужно делать базу товаров, учитывая что имеются:
1) Производители
2) Группа товара, общая для всех производителей (например валенки, лапти, и т.д.)
3) Модели товара (например названий моделей валенок)
Например:
Roverbook -> Ноутбуки -> Voyager -> тут уже конкретные ноутбуки модели Voyager
Насколько я понял, в конечном итоге весь ассортимент должен лежать в одной таблице, и лапти, и водка, и ноутбуки, так? | |
|
|
|
|
|
|
|
для: Zilog
(25.03.2006 в 01:48)
| | >Мастера! Хочу поинтерисоваться следующим - как правильно
>нужно делать базу товаров...
как правильно сделать решать нужно по конкретной ситуации.
А вообще я делал так:
В одну таблицу я заносил описание товара, а в другую категорию товара. В таблице с товарами хранятся товары с их полным описанем, а в таблице с категориями - категории с их полным описанием
Пример :
Имеем валенки и кросовки(я бы сделал так) делаем так:
#Создаем таблицу с категориями, в данном случае обувь
CREATE TABLE 'categories' (
'id_cat' INT NOT NULL AUTO_INCREMENT,
'cat_name' TEXT NOT NULL,
'cat_description' TEXT NOT NULL,
# и т. д.
PRIMARY KEY(id_cat)
);
#Создаем таблицу с товарами
CREATE TABLE 'items' (
'id_item' INT NOT NULL AUTO_INCREMENT,
'item' TEXT NOT NULL,
...
# Далее следует описание товара, цена и т.д.
...
'id_cat' INT NOT NULL,
PRIMARY KEY(id_item),
KEY (id_cat)
);
#А посля, примерно следующим запросом вынимаем данные из БД
<?php
...
$query = "SELECT * FROM items WHERE необходимое значение AND id_cat.item = id_cat.categories(это делается для того, чтоб товар привязать к конкретной категории товаров)";
|
| |
|
|
|
|
автор: MotoP@Sol (25.03.2006 в 09:01) |
|
|
для: Lelik
(25.03.2006 в 03:26)
| | Я делаю похожим способом! таблица разделов и таблица товаров. в таблице разелов еще есть ид родительского раздела, чтобы вывести структуру, типа, ноутбук - тошиба, - самсунг, - и т.д. | |
|
|
|
|
|
|
|
для: Zilog
(25.03.2006 в 01:48)
| | >Можно конечно еще и храниьт в корине кроме ID товара еще и индентификатор группы - но
>таблицы у меня разные по структуре, и обраточкик этого геморроя писать геморно (простите за
>каламбур).
А зачем вам разные обработчики для корзины - ведь вам нужны только название, цену и ссылку на товар, выбирайте из разных таблиц - только эти поля + добавляйте идентификатор таблицы и у вас будет достаточно унифицированный обработчик подходящий под все случаи жизни. | |
|
|
|
|
|
|
|
для: cheops
(25.03.2006 в 13:56)
| | Есть парочка вопросов.
1) Связывание таблиц.
Например у меня есть несколько производителей, и несколько товарных групп (валенки, шапочки для бассейна). Производители и товарные группы лежат по разным талицам, но может быть такая ситуация что у обоих производтелей есть товар из одной товарной группы. Например, Производитель1 выпускает валенки, и Производитель2 выпускает валенки.
(у каждого производителя еще свой модельный ряд, например, валенок - это уже третья таблица, четвертая - это сами товары: валенки, шапочки, и др.)
Какая труктура должна быть у таблиц в таком случае?
Смысл в том, что бы иметь возможность вывести одним запросом:
1) Весь товар ПроизводителяN
2) Весть товар ТоварнойГруппыN ПроизводителяN
3) Весь товар ТоварнойГруппыN МодельногоРядаN ПроизводителяN
Я так понимаю, должно быть четыре талицы:
Производители:
id, name
Товарные группы (валенки, шапочки):
id,name, id_производителя - нужно ли ???
Модельный ряд товарной группы (валенки черные, валенки белые):
id, name, id_Товарной группы, id_производителя - нужно ли ???
Товары:
id, name, id_Производителя, id_ТоварнойГруппы, id_Модельного ряда, image, price, etc...
такая структура верная? Если верная, то как быть в случае, если ТоварнаяГруппа1 присутствует у обоих производителей - ведь id_Производителя в таблице ТоварныхГрупп может быть назначего только одному производителю?
2) Какая из таблиц, скажем так, является корневой?
Допустим ситуацию, когда вс сделано и работает. Таблицы все пустые. Зайдя в редактор, что я должен увидеть - что является кронем каталога - Производители или Товарные групы? Что является основой?
Благодарю за помощь! | |
|
|
|
|
|
|
|
для: Zilog
(25.03.2006 в 14:49)
| | Еще важно дополнение к вопросу 1.
Что касается вывода данных одним запросом:
еще варианты:
4) Весь товар обоих производителей Товарной Группы1
5) Все товарные группы производителяN
6) Все производители ТоварнойГруппыN
особо волнует вариант 6: как выбрать всех производелей одной товарной группы, если у Товарнойгруппы может быть только один id производителя??? | |
|
|
|
|
|
|
|
для: Zilog
(25.03.2006 в 15:13)
| | >особо волнует вариант 6: как выбрать всех производелей
>одной товарной группы, если у Товарнойгруппы может быть
>только один id производителя???
Построй правильный запрос к БД, напрмер:
<?php
...
$query = "SELECT * FROM sometable WHERE производитель=марка производителя AND категория=нужная категория";// и. т. д
...
?>
|
| |
|
|
|
|
|
|
|
для: Zilog
(25.03.2006 в 14:49)
| | >1) Связывание таблиц.
>Например у меня есть несколько производителей, и несколько
>товарных групп (валенки, шапочки для бассейна).
>Производители и товарные группы лежат по разным талицам, но
>может быть такая ситуация что у обоих производтелей есть
>товар из одной товарной группы. Например, Производитель1
>выпускает валенки, и Производитель2 выпускает валенки.
>(у каждого производителя еще свой модельный ряд, например,
>валенок - это уже третья таблица, четвертая - это сами
>товары: валенки, шапочки, и др.)
>Какая труктура должна быть у таблиц в таком случае?
Отдельная талица для товарной позиции и отдельная таблица для производителя. Но в таблице тованой позиции необходимо предусмотреть поле для ссылки на запись в таблице производителей.
>
>Смысл в том, что бы иметь возможность вывести одним
>запросом:
>1) Весь товар ПроизводителяN
>2) Весть товар ТоварнойГруппыN ПроизводителяN
>3) Весь товар ТоварнойГруппыN МодельногоРядаN ПроизводителяN
>
>Я так понимаю, должно быть четыре талицы:
>
>Производители:
>id, name
>
>Товарные группы (валенки, шапочки):
>id,name, id_производителя - нужно ли ???
Погодите, это каталог или сами товарные позиции - если каталог, то id_производителя здесь лишним пожалуй будет...
>Модельный ряд товарной группы (валенки черные, валенки
>белые):
>id, name, id_Товарной группы, id_производителя - нужно ли
>???
А вот эта таблица пожалуй будет лишняя - вы и в таблице товарные группы
>Товары:
>id, name, id_Производителя, id_ТоварнойГруппы, id_Модельного
>ряда, image, price, etc...
Сюда же производителя неплохо добавить..
>
>2) Какая из таблиц, скажем так, является корневой?
>Допустим ситуацию, когда вс сделано и работает. Таблицы все
>пустые. Зайдя в редактор, что я должен увидеть - что
>является кронем каталога - Производители или Товарные групы?
>Что является основой?
Товарные группы - производители уходят и приходят, а валенки и черз 100 лет будут валенками... | |
|
|
|
|
|
|
|
для: cheops
(25.03.2006 в 22:04)
| | Создавать таблицы лучше только для категорий и для товаров, а производителей и всю прочую ерунду вносить в БД как описание товара, а потом запросами под конкретный случай доставать данные из БД | |
|
|
|
|