Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Как лучше в плане оптимизации ?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Danxil
Отправлено: 03 Февраля, 2014 - 00:48:07
Post Id


Новичок


Покинул форум
Сообщений всего: 24
Дата рег-ции: Янв. 2014  


Помог: 0 раз(а)




В общем есть книжный каталог, книги хранятся в бд, у каждой книги есть название, ее авторы, ее рубрики, и в перспективе еще много чего.
Есть возможность редактировать книгу - менять/добавлять ее авторов (т.е. при редактировании нужно получить список всех авторов).
Есть авторы, автор может не быть привязаным ни к одной книге.
Редактирование на аяксе. С рубриками, так же как и с авторами.

Вижу несколько способов это реализовать:

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

Минусы:
- заранее создается форма редактирования которая может и не понадобится
- из базы извлекаются все авторы, в том числе и те, у которых нет книг те. если не будет редактирования - они не нужны

Из плюсов: всего один запрос к бд, не считая запроса на редактирование.

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

Плюсы: изначально не получаю лишних данных и не создаю лишних форм
Минусы: несколько запросов на сервер и к бд.

Какой из этих способов лучше или как вообще лучше можно сделать ?
 
 Top
DelphinPRO
Отправлено: 03 Февраля, 2014 - 02:23:11
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




Зачем все книги-то получать? все равно редактирование по одной.

Вывести список книг (как положено, с пагинацией, по 10-20 штук на страницу).
при клике на книгу подтягивать аяксом данные по ней и показывать форму.
Список авторов можно сразу дернуть, и\или сделать умный поиск с автокомплитом.


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Danxil
Отправлено: 03 Февраля, 2014 - 11:43:35
Post Id


Новичок


Покинул форум
Сообщений всего: 24
Дата рег-ции: Янв. 2014  


Помог: 0 раз(а)




Прикол в том, что данные по каждой книге нужн опоказыват ьизначально, типа как тут - http://danxil[dot]pp[dot]ua/
Т.е. выходит при редактировании аяксом получать список всех авторов, списоку рубрик и создавать форму ?
 
 Top
DelphinPRO
Отправлено: 03 Февраля, 2014 - 13:48:57
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




ну во-первых, не по всем же книгам сразу? а если их 1000? все равно разбиение на страницы по 10-20 штук.
во-вторых, если то, что выводится в таблице, это все данные по книге, и других нет, можно и скрытые формы делать на каждую книгу.
А если в табличке отображается только часть данных, для информативности, чтобы идентифицировать книгу в списке, то как и сказал выше - при клике подтягивать полные данные.
Вообще тут нечего оптимизировать-то. Не бог-весть какая нагрузка...

По поводу авторов и рубрик - запихните их прямо в страницу в виде javascript-массива.
Если авторов очень много, - сделайте дополнительный интерфейс по выбору автора. Например во всплывающем окне список букв алфавита, при клике на букву, показывайте авторов на эту букву. В базе, соответственно индекс вешаем на поле с именами авторов.
Если не ошибаюсь (где-то видел сегодня) индекс можно создать только по первому символу.


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Danxil
Отправлено: 03 Февраля, 2014 - 14:28:55
Post Id


Новичок


Покинул форум
Сообщений всего: 24
Дата рег-ции: Янв. 2014  


Помог: 0 раз(а)




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

Пока это все данные по книгам, но в перспективе их может быть больше, поэтому хочу сразу понять как сделать в идеале. Это все чисто в целях обучения

(Отредактировано автором: 03 Февраля, 2014 - 14:30:54)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Хранение данных, их вывод и обработка »


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



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB