Если у вас есть только одна страница, вам не нужна база данных. Все, что вам нужно сделать, это сохранить текстовый файл на сервере (используйте fopen()
и связанные с ним функции), к которому только добавляется. Если у вас несколько страниц, то просто id (INTEGER), filetext (LARGEBLOB)
. (Примечание largeblob
имеет ограничение 2 ^ 32 байта ).
Для части браузера пользователя вам потребуется использовать Javascript и AJAX, чтобы сообщать серверу о любых обновлениях. Просто свяжитесь с PHP-скриптом, который (1) принимает ввод и (2) добавляет его в файл.
Бонусный вопрос 1: Как можно динамически обновлять страницу, поэтому, если A отправляет текст, пока B печатает, B сразу видит текст A, отправленный на страницу B?
Также используйте вызов AJAX для извлечения нового контента (например, если вы назначаете номера строк, тогда браузер просто сообщает сценарию последнюю строку, которую он прочитал, и сценарий возвращает все новые строки после этой точки).
Я предполагаю, что для отображения начальной страницы потребуется вызов php в базу данных, затем еще один запрос php для отправки данных, а затем еще один запрос php для отображения новой страницы.
В значительной степени. Но отправляйте только последние 50 строк файла, когда его посещает браузер. Вы не хотите завершать работу браузера.
Бонусный вопрос 2. Какие проблемы могут возникнуть, если эта база данных станет очень большой (скажем, миллионы слов), и как я могу решить их заранее? При необходимости я мог бы показать только небольшую часть (только текстовой) базы данных на любой данной странице, а затем выполнить пагинацию.
Думайте в байтах, а не в словах, и вы, скорее всего, столкнетесь с проблемами производительности. Вы можете ограничить размеры файлов или разбить хранилище на несколько файлов с определенным размером, чтобы вам не приходилось сканировать пропущенный контент, который будет редко выбираться.