Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Структура базы данных косметических товаров
 
 автор: zelen   (10.10.2006 в 10:14)   письмо автору
 
 

предположим надо создать БД для косметических товаров, в которой надо реализовать сортировку по производителям и по категориям. Т. е. могоуровневый каталог при сортировке по производителю должен выглядеть так:

фирма производитель --> серия косметики --> конкретный товар

а когда кликаешь на сортировку по категориям каталог преобретает такой вид:

категории(например, крем, помада и т.д.) -->какая-либо классификация товара(все фирмы) --> конкретно товар.

короче говоря интересует идея реализации подобной сортировки! помогите, если у кого есть идеи!

   
 
 автор: Axxil   (10.10.2006 в 10:52)   письмо автору
 
   для: zelen   (10.10.2006 в 10:14)
 

Вы же сами всё и спроектировали :)
Нужно три таблицы.

1. Таблица с фирмами. firm_id | name
2. Таблица с сериями косметики seria_id | name | firm_id 
3. Таблица с товарами good_id | name | seria_id

   
 
 автор: zelen   (10.10.2006 в 11:16)   письмо автору
 
   для: Axxil   (10.10.2006 в 10:52)
 

А каким образом перейти от одного вида сортировки к другому?

   
 
 автор: Axxil   (10.10.2006 в 11:34)   письмо автору
 
   для: zelen   (10.10.2006 в 11:16)
 

Это всё запросами решается.
Непонятно что вы имеете ввиду под сортировкой?

   
 
 автор: zelen   (10.10.2006 в 12:48)   письмо автору
 
   для: Axxil   (10.10.2006 в 11:34)
 

под сортировкой имею в виду другую структуру каталога!
с начала каталог был разбит по фирмам, кликнули по ссылке на сайте и каталог стал разбит по категориям( лаки для волос, краски для волос, лаки для ногтей и т.д.)

   
 
 автор: elenaki   (10.10.2006 в 12:52)   письмо автору
 
   для: zelen   (10.10.2006 в 12:48)
 

каталог не меняется. меняется запрос на выборку из базы. это называется динамическое
построение запроса. сначала юзер выбирает условия поиска, потом строится запрос и
выдается результат.

   
 
 автор: valenok   (10.10.2006 в 13:24)   письмо автору
 
   для: 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."` ");

   
 
 автор: Axxil   (10.10.2006 в 15:36)   письмо автору
 
   для: valenok   (10.10.2006 в 13:24)
 

На лицо ужасающая избыточность данных.
Представьте себе случай что у вас 1000000 товаров и надо сделать выпадающий список например всех категорий, которых всего-то скажем 50.
Что будем делать так и вешать сервер?

select category from goods group by category

Канонические формы в теории БД не просто для теории придумали...

   
 
 автор: valenok   (10.10.2006 в 16:03)   письмо автору
 
   для: Axxil   (10.10.2006 в 15:36)
 

А так у тебя выходит три таблицы во всех из которых повторяется поле name
и для кадой записи чаще всего ещё и держат поле id для удобства редактирование
но даже без него три таблицы по 1 000 000 записей

Просто выбирать надо не всё как я написал, кроме того я написалы примеры
а привёл 1, на остальные времени не хватило. Пришлось уйти
хотя с каноническими формами ты прав в какойто степени =)

   
 
 автор: Axxil   (10.10.2006 в 16:39)   письмо автору
 
   для: valenok   (10.10.2006 в 16:03)
 

Нифигасе. Ты где там нашёл три таблицы по миллиону записей?
Таблица с производителями - содержит исключительно производителей, которые могут производить как все категории товаров так и что-то одно.
Таблица с категориями содержит исключительно категории.
В построенной подобным образом базе ты не найдёшь даже 2х одинаковых значения поля. За исключение ключей связи таблиц, но поэтому они и одинаковы потому что связывают.

> так у тебя выходит три таблицы во всех из которых повторяется поле name
Да в чём проблема. Добавь префикс любой к каждому из name...

Согласен что в плане скорости одна таблица предпочтительнее, но на небольших объёмах данных. Таким образом хорошо организовывать временные таблицы.

PS Блин, канонические формы это немного из другой оперы. Я имел ввиду нормализацию...

   
 
 автор: valenok   (10.10.2006 в 20:20)   письмо автору
 
   для: Axxil   (10.10.2006 в 16:39)
 

Хотя и связные ключи по два раза держать..
Вообщем миллион товаром я не продаю пока но с таким количеством - ты прав
Дело в количестве товаров..

   
 
 автор: zelen   (10.10.2006 в 15:13)   письмо автору
 
   для: zelen   (10.10.2006 в 10:14)
 

Ну ладно, пусть выше указанная мною проблема решается sql запросами!

Тогда ещё вопрос! Как создать разноуровневый каталог продукции!
Т.е. например, в одном разделе 3 уровня, а в другом 4???
Подскажите плиз!!!!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования