Вы здесь

Подскажите какую структуру выбрать для решение задачи.

1

Добрый день.
Подскажите пожалуйста какую структуру лучше выбрать под следующую задачу:

Есть 80 регионов
В каждом регионе есть свои объекты.

Схема приблизительно такая:
Регион 1
-- Объект 1 Региона 1
---- Актуальное описание Объекта 1 Региона 1 (Автоматически обновляется каждый день)
---- Примечание (Обновляется в ручную по мере необходимости)
-- Объект 2 Региона 1
---- Актуальное описание Объекта 2 Региона 1 (Автоматически обновляется каждый день)
---- Примечание (Обновляется в ручную по мере необходимости)
-- Объект 3 Региона 1
---- Актуальное описание Объекта 3 Региона 1 (Автоматически обновляется каждый день)
---- Примечание (Обновляется в ручную по мере необходимости)
Регион 2
-- Объект 1 Региона 2
---- Актуальное описание Объекта 1 Региона 2 (Автоматически обновляется каждый день)
---- Примечание (Обновляется в ручную по мере необходимости)
-- Объект 2 Региона 2
---- Актуальное описание Объекта 1 Региона 3 (Автоматически обновляется каждый день)
---- Примечание (Обновляется в ручную по мере необходимости)
И т.д.

Количество объектов в каждом регионе разное. Могут появляться новые объекты и удалятся старые. Так же не исключен вариант переименования Объекта, но у каждого объекта есть свой ID.

У каждого объекта есть свое описание, которое меняется каждый день. Описание импортируются на сайт по крону 1 раз в день из json. Актуальное описание показывается, а старое скрывается, но сохраняется и его всегда можно посмотреть.

Так же у каждого объекта есть примечание, которое изменяется вручную и по необходимости.

Думал сделать такую структуру
Регионы – термины словаря.
Объект и актуальное описание – нода создаваемая через импорт json. Соответственно каждый день создается новая нода с новым описанием.
Встал вопрос как привязать примечание к объекту если каждый день по сути будет создаваться новая нода... т.е. референс не подходит.
А теперь и вовсе сомневаюсь в правильности такой структуры.

Подскажите, пожалуйста, какую структуру выбрать под эту задачу.

В дальнейшем планируется к каждому объекту автоматический импорт информации о связях с другими объектами внутри своего региона и наличие дочерних "простейших" объектов (т.е. просто название дочернего объекта и поле связь со значением: есть/нет) ну и попытка визуализации связей при помощи Google Charts. Так скажем схема со стрелками. В общем попытка сделать функционал похожий на мониторинг... но это более далекая задача.

Версия Drupal: 
7.x
Вопрос задан 06.05.2015 - 13:21
Аватар пользователя 69
69
11

Ответы

1

Регионы – термины словаря.

Правильно

Объект и актуальное описание – нода создаваемая через импорт json. Соответственно каждый день создается новая нода с новым описанием.

Неправильно. Надо создавать ноду, в случае если отсутствует. Я полагаю у объекта все равно есть уникальный идентификатор, если нету, добавьте или начните опираться на друпальные nid. Соответственно при импорте проверка. Есть такой объект? Тогда обновляем лишь описание, если нету, то создаем ноду.

И остальные ваши проблемы отпадают сразу.

Ответ дан 06.05.2015 - 13:29
Аватар пользователя Niklan
Niklan
445

Добрый день.
Спасибо за отклик.
Да, есть уникальный идентификатор, но как в таком случае вести историю (архив) описаний? Ревизия не подходит. Одно из описаний планируется помечать флагом - "Лучшее", при этом оно может быть не актуальным на сегодняшний день, а создано ранее. Да и само описание это не одно поле, а нескольких полей.

Комментарий оставлен 06.05.2015 - 13:48

И чем же не устраивают ревизии?

Комментарий оставлен 06.05.2015 - 17:59

Дело в том, что слабо с ними знаком. Общее представление имею, но не более.
Подскажите ревизию можно отметить флагом (Модуль Flag)? Можно ли экспортировать данные из ревизии в json или csv? И то, что через год к одной ноде будет 365, а через два 730 ревизий это не страшно?

По сути нужно сделать архив конфигураций каждого объекта. С возможность просмотра ранних конфигураций их сравнение и выбором эталонного конфига. Ну и экспорт любой версии конфига в файл.

Комментарий оставлен 06.05.2015 - 20:02

Согласен с Никитой.
Если плохо знакомы с ревизиями прочитайте статью Node revisions

Комментарий оставлен 08.05.2015 - 03:33