Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Общие вопросы по программированию, компьютерный форум
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.08.2010, 19:56   #1
dr.Chas
***
Участник клуба
 
Аватар для dr.Chas
 
Регистрация: 30.07.2007
Сообщений: 1,162
По умолчанию Организации базы данных (PHP)

Всем здраствуйте. Вот вылезла проблема, вприципе варианты у меня есть разные, но что то мне кажется это не правильно. Да и думаю это не велосипед, так что прошу совета.

И так ситуация такая. (смотрим вложение ниже):

Имеется сайт. На нём меню которое будет создаваться динамически. В нём например 3 категории:
Новости
Статьи
Меню (с вложением)

Новости и статьи спокойно храняться в таблице posts. А вот как хранить меню которое продразумивает, что оно будет ещё разделено на категории. Создавать ещё одну таблицу? (ну создавать ещё одну такую же таблицу, не знаю, мне кажется как то не так)

p.s.: мб не очень понятно изложил, спрашивайте, если что не понятно.
Изображения
Тип файла: jpg 1d.jpg (151.1 Кб, 91 просмотров)
dr.Chas вне форума Ответить с цитированием
Старый 16.08.2010, 21:12   #2
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,702
По умолчанию

Здесь правильное решение таится в том как Вы будете организовывать формирования меню. Если Вы формируете меню всё сразу, то лучше использовать 1 таблицу. Если подменю формируется только при нажатии, то две. Это связано с тем, что каждый fetch таблицы требует времени.
Если честно, по-моему, ваша идея с динамическим меню, берущимся из базы, довольно плоха, т.к. очень ресурсоёмка. Проще использовать подключаемый include-ом php-фаил с настройками меню в удобной форме.
Виталий Желтяков вне форума Ответить с цитированием
Старый 16.08.2010, 21:42   #3
dr.Chas
***
Участник клуба
 
Аватар для dr.Chas
 
Регистрация: 30.07.2007
Сообщений: 1,162
По умолчанию

Цитата:
Сообщение от Виталий Желтяков Посмотреть сообщение
Здесь правильное решение таится в том как Вы будете организовывать формирования меню. Если Вы формируете меню всё сразу, то лучше использовать 1 таблицу. Если подменю формируется только при нажатии, то две. Это связано с тем, что каждый fetch таблицы требует времени.
Если честно, по-моему, ваша идея с динамическим меню, берущимся из базы, довольно плоха, т.к. очень ресурсоёмка. Проще использовать подключаемый include-ом php-фаил с настройками меню в удобной форме.
Да, да, вы меня поняли И я о том же, что сайт нагружать, лишними запросами идея не самая лучшая, тем более в две таблицы. Я вприципе понял что вы имеете ввиду, есть пример такой реализации? Я просто на пхп ток перешёл. Написать то я могу и без примера, но опять будет велосипед

[add]
Попробывал, что-то как то не очень получается. Мб ещё примеры есть?

Последний раз редактировалось dr.Chas; 17.08.2010 в 00:10.
dr.Chas вне форума Ответить с цитированием
Старый 17.08.2010, 01:34   #4
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от Виталий Желтяков Посмотреть сообщение
Если честно, по-моему, ваша идея с динамическим меню, берущимся из базы, довольно плоха, т.к. очень ресурсоёмка.
Вас послушать - так вообще пора переходить на статические страницы - ну их,эти Базы Данных!!!...
Кто вообще придумал хранить информацию в этих жутких,ресурсоёмких Базах...???
ЧЕМ запрос десятка текстовых строк так уж перегрузит сервер????

Цитата:
Сообщение от Виталий Желтяков Посмотреть сообщение
Проще использовать подключаемый include-ом php-фаил с настройками меню в удобной форме.
Даже не могу придумать "удобную форму" для постоянного редактирования подключаемого файла,кроме как прописывать каждое изменение меню в текстовый файл и при каждом вызове меню этот файл парсить,парсить,парсить - жуть просто...
Потому как именно постоянное изменение лично я подразумеваю под определением "На нём меню которое будет создаваться динамически"

dr.Chas - если это будет динамическое меню(т.е. количество пунктов или информация в пунктах может изменяться),то делайте его при помощи БД - и не парьтесь.
Это упростит создание и редактирование пунктов вашего меню,а так же сэкономит вам кучу времени при работе с таким меню....
Поверьте,оптимизация запросов к БД не настолько сурова,что прям уж и меню нельзя сделать...
Andkorol вне форума Ответить с цитированием
Старый 17.08.2010, 08:14   #5
dr.Chas
***
Участник клуба
 
Аватар для dr.Chas
 
Регистрация: 30.07.2007
Сообщений: 1,162
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
dr.Chas - если это будет динамическое меню(т.е. количество пунктов или информация в пунктах может изменяться),то делайте его при помощи БД - и не парьтесь.
Это упростит создание и редактирование пунктов вашего меню,а так же сэкономит вам кучу времени при работе с таким меню....
Поверьте,оптимизация запросов к БД не настолько сурова,что прям уж и меню нельзя сделать...
Ну по началу так и собирался. Но выходят почти две одинаковые таблицы, что как то не так. Как обычно такое делается?
dr.Chas вне форума Ответить с цитированием
Старый 17.08.2010, 08:43   #6
mv28jam
Старожил
 
Аватар для mv28jam
 
Регистрация: 09.09.2008
Сообщений: 2,624
По умолчанию

Учите теорию и не будет таких вопросов!
ОСНОВЫ ПРОЕКТИРОВАНИЯ РЕЛЯЦИОННЫХ БАЗ ДАННЫХ
Стрелок-охотник
mv28jam вне форума Ответить с цитированием
Старый 17.08.2010, 08:49   #7
dr.Chas
***
Участник клуба
 
Аватар для dr.Chas
 
Регистрация: 30.07.2007
Сообщений: 1,162
По умолчанию

Цитата:
Сообщение от mv28jam Посмотреть сообщение
Учите теорию и не будет таких вопросов!
ОСНОВЫ ПРОЕКТИРОВАНИЯ РЕЛЯЦИОННЫХ БАЗ ДАННЫХ
Супер ответ, ты мне очень помог. Молодец возьми с полки пирожок. Ты бы меня ещё в поиск отправил... Если ты её подучил, мб что-то посоветуешь?
dr.Chas вне форума Ответить с цитированием
Старый 17.08.2010, 09:57   #8
mv28jam
Старожил
 
Аватар для mv28jam
 
Регистрация: 09.09.2008
Сообщений: 2,624
По умолчанию

Цитата:
Сообщение от dr.Chas Посмотреть сообщение
Супер ответ, ты мне очень помог. Молодец возьми с полки пирожок. Ты бы меня ещё в поиск отправил... Если ты её подучил, мб что-то посоветуешь?
Я дал Вам правильный, дельный и нужный лично для Вас совет. Прежде чем хамски отвечать надо подумать, почему Вам дают такой совет.

Но раз свой мозг вы тренировать не хотите, из жалости к сирым не "подучившим" подскажу. В таблице categories надо ввести поле parent, в котором будет находиться id родительской категории, если это подкатегория или false если это родительская категория. Используя такую схему, можно организовать любую глубину вложенности.
Стрелок-охотник
mv28jam вне форума Ответить с цитированием
Старый 17.08.2010, 10:34   #9
dr.Chas
***
Участник клуба
 
Аватар для dr.Chas
 
Регистрация: 30.07.2007
Сообщений: 1,162
По умолчанию

Цитата:
Сообщение от mv28jam Посмотреть сообщение
Я дал Вам правильный, дельный и нужный лично для Вас совет. Прежде чем хамски отвечать надо подумать, почему Вам дают такой совет.

Но раз свой мозг вы тренировать не хотите, из жалости к сирым не "подучившим" подскажу. В таблице categories надо ввести поле parent, в котором будет находиться id родительской категории, если это подкатегория или false если это родительская категория. Используя такую схему, можно организовать любую глубину вложенности.
Во-первых, разберём твой дельный совет:
Когда человек обращается на форум спрашивая, он ждёт не обтекаемых фраз в стиле: "прочитай учебник по php", "выучи всю теорию по бд", а нормально толчка в правильном направлении. Возможно примера или т.п. Давай на все темы на форумах, отвечать в стиле: "Вам нужно почитать учебник по делфи", "А тут вам надо подучить теорию". Зачем тогда форум? (ты видать забыл для чего существуют такие форумы, хотя для тебя он наверно и существует для того чтобы самоутвердиться)

Что же дал твой дельный совет? Он вместо толчка в правильном направлении предложил почитать пару учебников. Потом же ты написал нормально, а почему сразу так не написать?

Теперь не большая выписка из правил, которые я так понял ты не читал, а там есть довольно интересная информация, как раз для тебя:

Цитата:
Рекомендации:
Не публикуйте сообщения "читайте книгу", указывайте в какой книге, а лучше с ссылкой.
Не стоит отправлять в поиск, не хотите отвечать пройдите мимо. Хотите помочь, пишите конкретный ответ.
Как раз такие рекомендации правильные. Не стоит лишний раз флудить в темах набивая сообщения для чего? (а иначе я не могу объяснить твой дельный совет)

Во-вторых, я на личности не переходил, да я поблагодарил тебя в сатирическом стиле за твой "дельный" совет, но это не повод переходить на личности.

p.s.: без тебя и так разобрался.
dr.Chas вне форума Ответить с цитированием
Старый 17.08.2010, 18:14   #10
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,702
По умолчанию

Цитата:
Здесь правильное решение таится в том как Вы будете организовывать формирования меню. Если Вы формируете меню всё сразу, то лучше использовать 1 таблицу. Если подменю формируется только при нажатии, то две. Это связано с тем, что каждый fetch таблицы требует времени.
Я уже дал ответ как надо организовать БД. Вы что все отвлеклись на обсуждение скорости работы.
Цитата:
Вас послушать - так вообще пора переходить на статические страницы - ну их,эти Базы Данных!!!...
Кто вообще придумал хранить информацию в этих жутких,ресурсоёмких Базах...???
ЧЕМ запрос десятка текстовых строк так уж перегрузит сервер????
Сразу видно что Andkorol пишет сайты с максимумом посещений 30 человек в день и не представляет, как дорого обходиться работа с БД при более 2000 человек в день.
Виталий Желтяков вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
PHP выборка из базы данных Olga38 Помощь студентам 0 20.12.2014 14:54
Проблема организации игровой базы... dukales БД в Delphi 18 28.06.2011 13:23
Подойдет ли MySQL для организации базы данных Аватар Софт 1 18.04.2011 03:17
PHP + Базы данных. Скрипт расписания. Zalim Фриланс 3 12.01.2011 14:34
Delphi 7 выбор организации базы данных Streamline БД в Delphi 3 16.08.2010 14:39