Как реализовать хранение информации в мета-полях записи?
Есть кастомный тип "Объявления", у каждого объявления должны быть периоды доступности, недоступности, а также, когда объект забронирован. Таких периодов может быть сколько угодно.
При поиске и фильтрации должны отображаться объявления, которые доступны на указанные даты, т.е., по сути, достаточно проверить, попадают ли указанные в фильтре даты в диапазоны доступности.
Как лучше организовать запись данных периодов в мета-поля, чтобы можно было осуществлять отбор по ним?
На данный момент мне пришла в голову только такая идея:
1. три мета-поля для периода доступности, недоступности и забронированности, в которых хранится информация в виде сериализованных массивов - т.е., как оно по умолчанию работает в WP
2. при фильтрации все периоды игнорируются
3. в основном цикле массив доступности десериализуется и проверяются значения дат, установленные в фильтре, на попадание в массив. Если ок - выводим объявление, если нет - пропускаем.
Но у меня сомнения в эффективности и скорости работы такого подхода. Возможно, есть идеи лучше
Метаданные в Вордпрессе хороши для ввода и для вывода, но не для использования в фильтрах выборки. А сериализованные данные вообще невозможно нормально использовать в SQL-запросах. Отдельная таблица - самое эффективное решение.
YBB, да, я в курсе, что сериализованные данные не возможно использовать в SQL запросах, именно поэтому и родилась идея обрабатывать в момент вывода.
А про отдельную таблицу как-то и не подумал. Спасибо
Лучшей идеей хранить такую информацию в отдельную таблицу с нормальными индексами, чтобы оно работало быстрее и простая ошибка при перезаписи не убила бы все данные