размер базы Vs скорость

Demiurg

Guest
Автор оригинала: mulder
Где же категория ссылается на родительскую? Совсем нет. Конечно, если ты пишешь категорию как 10022411234, то да, но такой номер еще потом обработать надо...
А как например в твоем случае сделать селект по всем подкатегориям данной категории???
У меня это будет where parent_id=число,
Опиши структуру всех твоих таблиц (поле - что оно значит)
 

mulder

Guest
PHP:
#
# Структура таблицы `categories`
#

CREATE TABLE categories (
  cat_id tinyint(4) NOT NULL auto_increment,
  cat_name varchar(100) NOT NULL default '',
  parent_id tinyint(4) NOT NULL default '0',
  PRIMARY KEY  (cat_id)
) TYPE=MyISAM;

#
# Дамп данных таблицы `categories`
#

INSERT INTO categories VALUES (1, 'боевик', 0);
INSERT INTO categories VALUES (2, 'вестерн', 0);
INSERT INTO categories VALUES (3, 'военный', 0);

INSERT INTO categories VALUES (4, 'Вася Пупкин в тылу врага', 1);
INSERT INTO categories VALUES (5, 'Не бей меня мама, хорошего сына', 1);
INSERT INTO categories VALUES (6, 'Сбрось дядю с самолета', 1);
 

Demiurg

Guest
Автор оригинала: mulder
PHP:
#
# Структура таблицы `categories`
#
CREATE TABLE categories (
 cat_id tinyint(4) NOT NULL auto_increment,
 cat_name varchar(100) NOT NULL default '',
 parent_id tinyint(4) NOT NULL default '0',
 PRIMARY KEY (cat_id)
) TYPE=MyISAM;
#
# Дамп данных таблицы `categories`
#
INSERT INTO categories VALUES (1, 'боевик', 0);
INSERT INTO categories VALUES (2, 'вестерн', 0);
INSERT INTO categories VALUES (3, 'военный', 0);
INSERT INTO categories VALUES (4, 'Вася Пупкин в тылу врага', 1);
INSERT INTO categories VALUES (5, 'Не бей меня мама, хорошего сына', 1);
INSERT INTO categories VALUES (6, 'Сбрось дядю с самолета', 1);
У тебя получается одна таблица с кольцевой ссылкой ?
В данном случае это не целесообразно.
 

mulder

Guest
Если можно, объясни почему так нельзя делать.
 

Jin

Guest
Автор оригинала: mulder
Если можно, объясни почему так нельзя делать.
Причин много, в Твоём случае попросту отсутствует структура.
Попытайся к примеру в свою таблицу добавить комедии...
 

mulder

Guest
без проблем
PHP:
INSERT INTO categories VALUES (3, 'военный', 0);
А если надо найти категории верхнего уровня, то селект где ИД=0
 

mulder

Guest
Я имел ввиду
PHP:
INSERT INTO categories VALUES (7, 'комедии', 0);
 

vovik

Guest
что-то я не понял, зачем все в одну таблицу-то пихать ?

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

бред какой-то получается однако ...
 

mulder

Guest
Автор оригинала: vovik
что-то я не понял, зачем все в одну таблицу-то пихать ?
интересно, чем такой подход лучше создания отдельных таблиц "категории" и "товары" ?
бред какой-то получается однако ...
А если категорий у тебя двадцать??? Ты себе представляешь 20 лишних таблиц? А если у них еще хоть по 2 подкатегории???
 

mulder

Guest
Ясное дело что товары у меня лежат отдельно, Это я просто для примера вписал "Васю пупкина", это имелось ввиду название подкатегории.
 

vovik

Guest
Автор оригинала: mulder
А если категорий у тебя двадцать??? Ты себе представляешь 20 лишних таблиц? А если у них еще хоть по 2 подкатегории???
ээ ... я наверное невнятно написал ...
я бы сделал так: одна таблица - категории
вторая таблица - товары
итого - две таблицы

вообще, в теории реляционных (и прочих) бд я разбираюсь весьма посредственно, но пихать все в одну таблицу все же считаю глупостью ...
 

mulder

Guest
Все ты правильно понял. И я про то же, что для подкатегорий нет смысла создавать таблицы. См. мой предыдущий ответ
 

vovik

Guest
Автор оригинала: mulder
Все ты правильно понял. И я про то же, что для подкатегорий нет смысла создавать таблицы. См. мой предыдущий ответ
с кем ты спорил то ?
сам написал ерунду, а когда тебе на это указали, говоришь что вроде как и совсем не это имел в виду ....
 

mulder

Guest
Автор оригинала: С.
Хорошо, я согласен, что в первом варинате, я больше упор сделал на практическую реализацою, чем на ее теоретическую подоплеку. Тогда я предлагаю следующую структуру базы:
Таблица "Категории":
код, наименование,...
Таблица "Подкатегории"
код подкатегории, код категории, наименование,...
Таблица "Книги"
код книги, код категории, код подкатегории, нименование,...
Все. Где может вылезти хоть одна проблема, если четко следовать этой модели?
На практическом этапе можно говорить об объединении таблиц "Категории" и "Подкатегории", комбинировании их кодов, что я и сделал в самом начале.
Вот с кем я спорил.
 

vovik

Guest
Автор оригинала: mulder
Вот с кем я спорил.
и чего тебе тут не нравится ?
три таблицы. все четко и красиво ...
можно объединить "категории" и "подкатегории" в одну таблицу, но если у тебя четкая структура категория->подкатегория->товар, то этого, в общем-то, не требуется ...
 

tony2001

TeaM PHPClub
Автор оригинала: mulder
А если категорий у тебя двадцать??? Ты себе представляешь 20 лишних таблиц? А если у них еще хоть по 2 подкатегории???
ты о чем?
ОДНА таблица для катеорий, ОДНА для подкатегория, ОДНА для товаров.
и незачем пихать все в одну таблицу!
кто-то тут недавно говорил, что школы и учеников (не шучу) надо пихать в одну таблицу и вообще одна таблицу - рулез.
так вот это - клиника, медицина тут бессильна.
 

f1

formula 1
Автор оригинала: tony2001
ты о чем?
ОДНА таблица для катеорий, ОДНА для подкатегория, ОДНА для товаров.
и незачем пихать все в одну таблицу!
кто-то тут недавно говорил, что школы и учеников (не шучу) надо пихать в одну таблицу и вообще одна таблицу - рулез.
так вот это - клиника, медицина тут бессильна.
а если у подкатегорий есть свои подкатегории,
ещё одну таблицу?
и т.д. :))
 

tony2001

TeaM PHPClub
Автор оригинала: f1
а если у подкатегорий есть свои подкатегории,
ещё одну таблицу?
и т.д. :))
в моем, конкретном случае уровень вложенности - один.
было бы больше - была бы другая структура.
 

mulder

Guest
Автор оригинала: tony2001
в моем, конкретном случае уровень вложенности - один.
было бы больше - была бы другая структура.
Ну ты панк!
Мы же не про тебя говорим!
 

Jin

Guest
mulder советую почитать о теорию баз данных в целом и о нормализации в частности...
 
Сверху