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
Форумы портала PHP.SU :: Версия для печати :: Разбить текст на части в бд
Форумы портала PHP.SU » » Работа с СУБД » Разбить текст на части в бд

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

1. Еугений - 05 Февраля, 2016 - 01:15:30 - перейти к сообщению
Всем привет, на сайте люди читают книги, и я решил большой текст глав выгружать по частям, с помощью substring() (БД mysql) .

Сначала хотел так: узнаю кол-во символов в тексте с помощью char_length() и, если текст большой,делаю substring(textbook,1, Book::limit).

Но я решил, уберу-ка я запрос на получении длины,и любой текст, независимо от того, большой он или нет, буду сразу обрабатывать substring-ом. (если кол-во символов полученного текста равно Book::limit, то можно предположить, что есть текст далее и добавляю пагинацию на след.страницу)

Что выбрать? Я не знаю, как повлияет на нагрузку этот substring, сильно ли будет нагружать БД? ( примерно 5000 книг читают в день). Какой способ выбрать? Мне главное чтоб БД не грузило, ресурсы иногда закаливают.
2. Panoptik - 05 Февраля, 2016 - 10:54:58 - перейти к сообщению
я бы попробовал вариант разбивать книгу на логические элементы, например главы/параграфы/предложения и для каждой единицы хранить объем. когда пользователь запрашивает книгу, ему выдаются от 1 до N элементов помещающихся в их буфер (страницу) и таким образом пагинация будет не классической, а подгружать элементы начиная с максимального который отображается на странице
3. Еугений - 05 Февраля, 2016 - 13:50:03 - перейти к сообщению
Panoptik пишет:
я бы попробовал вариант разбивать книгу на логические элементы, например главы/параграфы/предложения и для каждой единицы хранить объем. когда пользователь запрашивает книгу, ему выдаются от 1 до N элементов помещающихся в их буфер (страницу) и таким образом пагинация будет не классической, а подгружать элементы начиная с максимального который отображается на странице


Разбивать главы - вы имеете ввиду, разбить текст на несколько частей и эти части хранить в отдельной таблице? Или вы про использование substring()? Этой функцией я готов срезать текст даже в середине слова, красота тут не важна, Аяксом догрузится продолжение, пользователь даже не заметит

 

Powered by ExBB FM 1.0 RC1