Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Базы Данных > Структура базы данных


Автор: alligator 26.4.2007, 16:55
Всем привет мало работал с mysql и столкнулся с проблемой при написании движка для сайта , необходимо составить структуру базы данных
под каждый раздел меню , подскажите пожалуйста как лучше сделать структуру.
сайт автомобильной тематики, пока меня интересует как правильно сделать структу для раздела ксеноновых ламп:
на сайте это пока выглядит так
ксенон
ксенон-> авто комплекты (делятся на производителя, температуру нагрева, 3 вида ксенона(ксенон,биксенон,ксенон+галоген))
,к каждому виду есть тип цоколя~ 15 видов, ну соответственно цена)
ксенон-> мото комплекты (для мото примерно также как и для авто отличается только ценами)
ксенон-> для грузовиков (примерно также)
ксенон-> лампы
ксенон-> блоки росжига(делятся на производителя,авто или мото,цена)
ксенон-> крепежи(только вид крепежа и цена)
ксенон-> провода(лучше взглянуть на сайт) http://xenon4you.ru/viewxenon/
Хотелось бы под этот раздел для продукции сделать одну таблицу если это возможно конечно.....
Как мне лучше реализовать данную задачу ?
Я уже замучался  smile 

Автор: capitan 26.4.2007, 18:05
http://forum.vingrad.ru/forum/topic-148180.html

Автор: alligator 26.4.2007, 18:19
Древо видное меню это конечно хорошо , но мне это пока не требуется предложенный материал обязательно прочитаю ,
мне нужно составить таблицу чтобы она подходила для любого типа товара из раздела ксенон`а

Автор: Glip 26.4.2007, 19:02
в принципе наверное возможно и одну таблицу, вопрос в том насколько это будет удобно в дальнейшем сопровождении.
по самой постановке вопроса первый ответ который напрашивается:
http://www.citforum.ru/database/dbguide/index.shtml

если делать одной таблицей, то кроме суммы атрибутов всех деталей будет еще поле тип (или название детали)

но одна таблица мне кажется это просто жуть и вред своей карме smile

Автор: alligator 26.4.2007, 22:13
Тогда наилучшим вариантом наверное будет сделать одну таблицу для:
ксенон-> авто комплекты
ксенон-> мото комплекты
ксенон-> для грузовиков
а для остальных отдельные

Автор: MixerMsK 30.4.2007, 11:46
А зачем делать несколько таблиц?Почему не сделать одну таблицу под меню, добавить туда колонку parent(или любую другую по вкусу), в которой будет указываться id вышестоящего пункта(для корневых строк это значение будет равно нулю)?

Автор: alligator 30.4.2007, 15:28
Начал делать меню и всетаки столкнулся с проблемкой...:
Код

function Show_Tree($pid,$lvl){/*Рекурсивная ф-я вывода дерева меню*/
$db = &new DB;
global $lvl,$name;
$lvl++;
$SQL="SELECT * FROM blocks WHERE pid=".$pid." AND status='on' ORDER BY id";
$result = $db->query($SQL);
if($db->num_rows($result)>0){/*if1*/
print $pid." - ".$lvl;
$p1 = "
<tr><td width=\"15\"></td>\r\n
<td><img src=\"images/strelka.gif\" width=\"9\" height=\"5\" alt=\"\">&nbsp;&nbsp;\r\n
<a href=\"#\" onClick=\"return overlay(this, 'subcontent".$hidden."')\" class=\"stil\" onmouseover=\"this.style.alink='6b72c3';\" onmouseout=\"this.style.alink=''\"><b>".$name."</b></a>\r\n</td></tr>\r\n";
print $p1;


$hidden=0;
while($row =$db->sql_assoc($result)){
$hidden++;
$id1=$row["id"]; $name = $row["name"];
//$s= ($lvl & 1) ? "1" : "0"; //проверка чет или нечет

$p2 .= '
<tr>
<td width="15"></td>
<td>';
//<DIV id=\"subcontent".$hidden."\" style=\"display:none\">\r\n
$p2 .= "

&nbsp;&nbsp;&nbsp;&nbsp;- <A class=\"stil\" href=\"#\">".$name."</A><BR>\r\n
</DIV>";
$p2 .='</td></tr>';
print $p2;
$p2="";


Show_Tree($id1,$lvl);
$lvl--;

}

$hidden=0;
//print "<br/>";
}/*if1*/
//$db->close();
}



Код

CREATE TABLE `blocks` (
  `id` int(5) unsigned zerofill NOT NULL auto_increment,
  `name` varchar(50) NOT NULL default '',
  `pid` int(5) NOT NULL default '0',
  `status` char(3) NOT NULL default 'on',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=13 ;

-- 
-- Дамп данных таблицы `blocks`
-- 

INSERT INTO `blocks` (`id`, `name`, `pid`, `status`) VALUES 
(00001, 'АВТОЭЛЕКТРИКА', 0, 'on'),
(00002, 'ксенон', 1, 'on'),
(00003, 'ШИНЫ И ДИСКИ', 0, 'on'),
(00004, 'парктроники', 1, 'on'),
(00005, 'сигнализации', 1, 'on'),
(00007, 'АВТОЗВУК', 0, 'on'),
(00008, 'ТЮНИНГ', 0, 'on'),
(00009, 'шины', 3, 'on'),
(00010, 'диски', 3, 'on'),
(00011, 'авто комплекты', 2, 'on'),
(00012, 'мото комплекты', 2, 'on');


Хочу сделать ф-ю универсальной , но вот что-то никак не получается чтобы 2 уровень меню засунуть в скрытый слой....
Где ошибка не могу найти =(

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)