Как построить архитектуру сайта и учесть все тонкости?
Может быть громко звучит архитектура, но суть попробую передать. Есть xml файлик с кучей объектов (квартирами) тянется со стороннего сайта (объектов порядка 1500). Соответственно у каждого объекта куча свойств (штук 20-30), в итоге получается такой неплохой по размерам документик. Этот файл постоянно обновляется. Необходимо реализовать сайт в котором будет на главной странице план жк, кликаем на определенный дом, уходит ajax запрос - появляется изображение дома, кликаем по этажу улетает снова ajax запрос появляется план этажа, кликаем по планировке появляется планировка с кучей характеристик по данной квартире. Необходимо реализовать на wp это все и тут появляется куча вопросов.
Каким образом сделать хранение данных и их обработку?
1. Сделать план дома таксономией, так как домов не много. Планы этажей сделать кастомным типом поста и в нем хранить планировки (ну допустим через acf репитер сделать). Раз в день обновлять нужно планировки (вдруг что то продали) и тут проблема как чекнуть внутри постов планировки и удалять если ее нет в файле?
2. Второй вариант мне нравится больше, но от части. План дома - таксономия, план этажа тоже таксономия. Квартиры это кастомный тип поста. тогда обновлять будет проще, но так как их тьма и id из файла квартиры не совпадает с id поста будет проблематично всеровно обновлять эту кучу.
3. Последнее что мне пришло в голову это сохранять себе этот файл на сервер и постоянно обращаться к нему при поиске нужной планировке. Создать допустим таксономию плана домов, кастомный тип поста это план этажа и дополнительно файл с планировками. Тогда не будет тратится время на ежедневное обновление планировок в админке, тоесть не будет нагрузки никакой. НО насколько это эффективно будет ajax'ом обращаться на серв, используя php преобразовывать xml в объект выбирать нужное и отправлять клиенту
4. есть какой то другой способ?
Извиняюсь за тупой вопрос может быть, раз 10 перечитал и каша в голове. JSON объекты разные массивы или имелось ввиду 1 объект в котором массив подъездов, в каждом элементе массив этажей, внутри этих массивов массивы квартир со своими данными. Если оно так одним объектом отдается, не громоздко получается ли передавать сразу 1000 квартир (в будущем возможно увеличится до 1500 плюс минус пару сотен)? А так идея хорошая я проникся.
Один иерархический JSON-объект, ЖК->блок->подъезд->этаж->квартира, больше 1000 квартир, вес .json файла пара сотен килобайт, почти 2 года работы, полёт нормальный
Пара вопросов еще. Cron используете серверный который или встроенный в wp так называемый wp_cron (мне кажется что ответ будет серверный, но что бы уже точно убедиться). И еще чет до меня не доходит как отправить json файл сразу. Вот у меня есть json файл на сервере, каким образом мне взять его и отправить вместе с html, css и js или же при загрузке страницы, например, после $(document).ready(); запускать ajax запрос и его обрабатывать? (извиняюсь за глупые вопросы, но без них у меня получится какой то монстр)
В случае успеха в response будет объект, с которым можно будет работать. По структуре я вас немного дезинформировал, сейчас посмотрел. Получается примерно так:
ЖК состоит из 8 корпусов, в каждом корпусе некое количество подъездов, этажность отличается на 1-2 этажа;
.json состоит из следующих объектов: корпуса, подъезды, этажи, квартиры. Немного подробнее о каждом из объектов:
корпуса: корпуса пронумерованы от 1 до 8, каждый содержит информацию о количестве непроданных 1, 2, 3, 4, 5-комнатных квартир и общее их число, количество месяцев до сдачи корпуса, дата сдачи корпуса в экплуатацию.
подъезды: пронумерованы, например, 1-3, где 1 - номер корпуса, 3 - номер подъезда, содержат информацию о количестве непроданных квартир
этажи: нумерация 1-2-3, 1 - корпус, 2 - подъезд, 3 - этаж, также информация о количестве квартир
квартиры - 1-150, 1 - корпус, 150 - квартира. Информация: номер квартиры, этаж, подъезд, корпус, цена за квадрат, ссылка на изображение планировки, количество комнат, стоимость, площадь.
Я мог бы дать ссылку на посмотреть, но не уверен, что это не противоречит правилам сайта. Не факт, что эта информация поможет вам создать "не монстра", и не факт, что у меня получился в своё время "не монстр"