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

  • Автор темы Автор темы mulder
  • Дата начала Дата начала
Автор оригинала: mulder
Где же категория ссылается на родительскую? Совсем нет. Конечно, если ты пишешь категорию как 10022411234, то да, но такой номер еще потом обработать надо...
А как например в твоем случае сделать селект по всем подкатегориям данной категории???
У меня это будет where parent_id=число,
Опиши структуру всех твоих таблиц (поле - что оно значит)
 
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
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
Если можно, объясни почему так нельзя делать.
Причин много, в Твоём случае попросту отсутствует структура.
Попытайся к примеру в свою таблицу добавить комедии...
 
без проблем
PHP:
INSERT INTO categories VALUES (3, 'военный', 0);
А если надо найти категории верхнего уровня, то селект где ИД=0
 
Я имел ввиду
PHP:
INSERT INTO categories VALUES (7, 'комедии', 0);
 
что-то я не понял, зачем все в одну таблицу-то пихать ?

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

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

вообще, в теории реляционных (и прочих) бд я разбираюсь весьма посредственно, но пихать все в одну таблицу все же считаю глупостью ...
 
Все ты правильно понял. И я про то же, что для подкатегорий нет смысла создавать таблицы. См. мой предыдущий ответ
 
Автор оригинала: mulder
Все ты правильно понял. И я про то же, что для подкатегорий нет смысла создавать таблицы. См. мой предыдущий ответ
с кем ты спорил то ?
сам написал ерунду, а когда тебе на это указали, говоришь что вроде как и совсем не это имел в виду ....
 
Автор оригинала: С.
Хорошо, я согласен, что в первом варинате, я больше упор сделал на практическую реализацою, чем на ее теоретическую подоплеку. Тогда я предлагаю следующую структуру базы:
Таблица "Категории":
код, наименование,...
Таблица "Подкатегории"
код подкатегории, код категории, наименование,...
Таблица "Книги"
код книги, код категории, код подкатегории, нименование,...
Все. Где может вылезти хоть одна проблема, если четко следовать этой модели?
На практическом этапе можно говорить об объединении таблиц "Категории" и "Подкатегории", комбинировании их кодов, что я и сделал в самом начале.
Вот с кем я спорил.
 
Автор оригинала: mulder
Вот с кем я спорил.
и чего тебе тут не нравится ?
три таблицы. все четко и красиво ...
можно объединить "категории" и "подкатегории" в одну таблицу, но если у тебя четкая структура категория->подкатегория->товар, то этого, в общем-то, не требуется ...
 
Автор оригинала: mulder
А если категорий у тебя двадцать??? Ты себе представляешь 20 лишних таблиц? А если у них еще хоть по 2 подкатегории???
ты о чем?
ОДНА таблица для катеорий, ОДНА для подкатегория, ОДНА для товаров.
и незачем пихать все в одну таблицу!
кто-то тут недавно говорил, что школы и учеников (не шучу) надо пихать в одну таблицу и вообще одна таблицу - рулез.
так вот это - клиника, медицина тут бессильна.
 
Автор оригинала: tony2001
ты о чем?
ОДНА таблица для катеорий, ОДНА для подкатегория, ОДНА для товаров.
и незачем пихать все в одну таблицу!
кто-то тут недавно говорил, что школы и учеников (не шучу) надо пихать в одну таблицу и вообще одна таблицу - рулез.
так вот это - клиника, медицина тут бессильна.
а если у подкатегорий есть свои подкатегории,
ещё одну таблицу?
и т.д. :))
 
Автор оригинала: f1
а если у подкатегорий есть свои подкатегории,
ещё одну таблицу?
и т.д. :))
в моем, конкретном случае уровень вложенности - один.
было бы больше - была бы другая структура.
 
Автор оригинала: tony2001
в моем, конкретном случае уровень вложенности - один.
было бы больше - была бы другая структура.
Ну ты панк!
Мы же не про тебя говорим!
 
mulder советую почитать о теорию баз данных в целом и о нормализации в частности...
 
Сверху