|
|
|
| предположим надо создать БД для косметических товаров, в которой надо реализовать сортировку по производителям и по категориям. Т. е. могоуровневый каталог при сортировке по производителю должен выглядеть так:
фирма производитель --> серия косметики --> конкретный товар
а когда кликаешь на сортировку по категориям каталог преобретает такой вид:
категории(например, крем, помада и т.д.) -->какая-либо классификация товара(все фирмы) --> конкретно товар.
короче говоря интересует идея реализации подобной сортировки! помогите, если у кого есть идеи! | |
|
|
|
|
|
|
|
для: zelen
(10.10.2006 в 10:14)
| | Вы же сами всё и спроектировали :)
Нужно три таблицы.
1. Таблица с фирмами. firm_id | name
2. Таблица с сериями косметики seria_id | name | firm_id
3. Таблица с товарами good_id | name | seria_id
|
| |
|
|
|
|
|
|
|
для: Axxil
(10.10.2006 в 10:52)
| | А каким образом перейти от одного вида сортировки к другому? | |
|
|
|
|
|
|
|
для: zelen
(10.10.2006 в 11:16)
| | Это всё запросами решается.
Непонятно что вы имеете ввиду под сортировкой? | |
|
|
|
|
|
|
|
для: Axxil
(10.10.2006 в 11:34)
| | под сортировкой имею в виду другую структуру каталога!
с начала каталог был разбит по фирмам, кликнули по ссылке на сайте и каталог стал разбит по категориям( лаки для волос, краски для волос, лаки для ногтей и т.д.) | |
|
|
|
|
|
|
|
для: zelen
(10.10.2006 в 12:48)
| | каталог не меняется. меняется запрос на выборку из базы. это называется динамическое
построение запроса. сначала юзер выбирает условия поиска, потом строится запрос и
выдается результат. | |
|
|
|
|
|
|
|
для: zelen
(10.10.2006 в 10:14)
| | Я бы с одной таблицей обошёлся
id | name | category | series | producer
----------------------------------------------------
1 | A-130 | lip stick | series-A | Loreal Paris
Тогда все запросы в одну таблицу идут и управлять ими будет легче, да и потом одна таблица с информацией о всех товарах
Примеры сортировки:
<?php
// подключаемся к БД
mysql_connect("localhost","Sasha","123456") OR die('Connection error');
mysql_select_db('shop') OR die('Select error');
$company = "Loreal Paris"; // Это компания которую пользователь будет искать
$sort = "producer" ; // Тоесть ищем всю продукцию некой компании
$result = Mysql_query("SELECT * FROM `table` WHERE `producer`='".$company."' ORDER BY `".$sort."` ");
|
| |
|
|
|
|
|
|
|
для: valenok
(10.10.2006 в 13:24)
| | На лицо ужасающая избыточность данных.
Представьте себе случай что у вас 1000000 товаров и надо сделать выпадающий список например всех категорий, которых всего-то скажем 50.
Что будем делать так и вешать сервер?
select category from goods group by category
|
Канонические формы в теории БД не просто для теории придумали... | |
|
|
|
|
|
|
|
для: Axxil
(10.10.2006 в 15:36)
| | А так у тебя выходит три таблицы во всех из которых повторяется поле name
и для кадой записи чаще всего ещё и держат поле id для удобства редактирование
но даже без него три таблицы по 1 000 000 записей
Просто выбирать надо не всё как я написал, кроме того я написалы примеры
а привёл 1, на остальные времени не хватило. Пришлось уйти
хотя с каноническими формами ты прав в какойто степени =) | |
|
|
|
|
|
|
|
для: valenok
(10.10.2006 в 16:03)
| | Нифигасе. Ты где там нашёл три таблицы по миллиону записей?
Таблица с производителями - содержит исключительно производителей, которые могут производить как все категории товаров так и что-то одно.
Таблица с категориями содержит исключительно категории.
В построенной подобным образом базе ты не найдёшь даже 2х одинаковых значения поля. За исключение ключей связи таблиц, но поэтому они и одинаковы потому что связывают.
> так у тебя выходит три таблицы во всех из которых повторяется поле name
Да в чём проблема. Добавь префикс любой к каждому из name...
Согласен что в плане скорости одна таблица предпочтительнее, но на небольших объёмах данных. Таким образом хорошо организовывать временные таблицы.
PS Блин, канонические формы это немного из другой оперы. Я имел ввиду нормализацию... | |
|
|
|
|
|
|
|
для: Axxil
(10.10.2006 в 16:39)
| | Хотя и связные ключи по два раза держать..
Вообщем миллион товаром я не продаю пока но с таким количеством - ты прав
Дело в количестве товаров.. | |
|
|
|
|
|
|
|
для: zelen
(10.10.2006 в 10:14)
| | Ну ладно, пусть выше указанная мною проблема решается sql запросами!
Тогда ещё вопрос! Как создать разноуровневый каталог продукции!
Т.е. например, в одном разделе 3 уровня, а в другом 4???
Подскажите плиз!!!! | |
|
|
|