Нарушение правил нормализации прекрасно, пока бизнес-требование может все еще быть выполнено. Наличие key_1, value_1, key_2, value_2, ... key_n, value_n
может быть в порядке, вплоть до точки, в которой Вы нуждаетесь key_n+1, value_n+1
.
Моим решением была таблица данных для общих атрибутов и XML для уникальных атрибутов. Это означает, что я использую обоих. Если все (или большинство вещей) имеет размер, то размер является столбцом в таблице. Если только возражают, что A имеют атрибут Z, то Z хранится как XML ответ подобного Peter Marshall, уже данный.
Для запуска приложения PHP навсегда или до завершения работы php
ignore_user_abort(true);
set_time_limit(0);
Возможно, вас заинтересует конфигурационная директива ignore_user_abort
и / или функция ignore_user_abort
:
Устанавливает, отключается ли клиент должен вызвать прерывание сценария.
Используя это, вы можете:
flush
и / или ob_flush
ignore_user_abort
(сейчас или раньше) Браузер пользователя, вероятно, по-прежнему будет указывать «ожидание» или «загрузка», но содержимое страницы будет загружено и отображено - и даже если пользователь нажмет «стоп», ваш сценарий должен продолжить выполнение.
Для получения дополнительной информации на странице руководства по этой функции есть пример - и вы можете взглянуть на эту статью: Как использовать ignore_user_abort ()
для внеполосной обработки
Конечно, хотя это можно использовать для некоторого легкого процесса (например, "«очистить» содержимое в конце страницы, отображая его как можно быстрее для пользователя) , вы все равно будете ограничены max_execution_time
и т.п.
Итак, это не является решением, которое следует использовать для длительных / тяжелых вычислений.