Что такое спутниковый тип данных?
Оригинал статьи https://www.amliesolutions.com/bubble/advanced/satellite-data-types-in-bubble/
Типы спутниковых данных - это еще один термин, который был представлен в книге The Ultimate Guide to Bubble Performance . Короче говоря, это дополнительные типы данных, которые вы настраиваете для определенной цели, обычно без ведома ваших пользователей. Типичный вариант использования - это когда вы работаете с типом данных, который имеет высокий вес данных (содержащий множество неструктурированных данных и полей), и вашим пользователям также необходимо часто и быстро искать этот тип.
Возвращаясь к нашему предыдущему примеру, мы создаем онлайн-блог с тысячами статей. Статьи могут быть любой длины, от 5 минут до 45 минут, и, таким образом, могут содержать потенциально большие объемы неструктурированных данных. В нашем блоге также есть функция расширенного поиска, где пользователи могут быстро искать статьи, которые могут их заинтересовать. В этом случае у нас есть то, что мы называем конфликтом требований.
Наш тип данных должен:
- хранить много неструктурированных данных
- быть достаточно легким для быстрого поиска и отображения
Когда мы устанавливаем требования для этой концепции данных, мы можем легко идентифицировать здесь конфликт: большой вес данных замедляет поиск. В некоторых случаях это может быть приемлемым компромиссом - в других случаях вам нужно переосмыслить структуру своей базы данных, чтобы подготовить концепцию данных для выполнения обоих требований.
Вот тут-то и пригодятся спутниковые типы данных.
Тип спутниковых данных для поиска и хранения
Решение проблемы, описанной выше, состоит в том, чтобы разделить два требования (хранение большого количества данных и быстрый поиск) на два разных типа данных. Здесь мы вернемся к модели концепции данных - мы собираемся настроить два отдельных типа данных, но для наших пользователей по-прежнему существует только одна концепция данных: статья. Чтобы два типа данных были разделены, мы разделим их на две категории:
Контейнер данных
Контейнер данных - это тип данных, который содержит все тяжелые данные, которые нам нужно хранить, например содержимое HTML / BBCode статьи. Мы не против, что этот может оказаться тяжелее, так как мы будем загружать только по одному.
Тип данных поиска
Тип данных поиска (спутник) содержит более облегченную версию той же записи статьи. При настройке типа необходимо учитывать две вещи:
- Какие поля вам нужны для поиска этого типа?
- Для статьи типичными полями будут заголовок, автор и, возможно, какие-то теги и/или категории.
- Какие поля вы должны отображать в результатах поиска для этого типа?
- Возможно, вам потребуется включить поля, которые не требуются для поиска, например миниатюру фотографии, количество слов или любую другую информацию, которую вы хотите отображать в своих результатах.
Всякий раз, когда пользователь ищет статьи, пузырь будет искать тип данных поиска, и всякий раз, когда щелкают результат для просмотра или редактирования полной статьи, пузырь переключается на контейнер данных. Как показано ниже, нам не нужно загружать тип с большим весом данных до последнего шага.
Чтобы контролировать два типа данных, мы можем настроить рабочие процессы для обновления полей в типе данных поиска при смене контейнера данных или, что еще лучше, использовать внутренние триггеры, чтобы они всегда были в актуальном состоянии.
Есть несколько сценариев, в которых использование спутниковых типов данных может быть полезно - давайте рассмотрим некоторые из них.
Другие сценарии использования спутниковых типов данных в пузыре
Важная вещь о спутниковых типах данных - не думать о них как о типах поиска или контейнерах данных . Это просто два распространенных варианта использования, но важный урок заключается в том, что ваши концепции данных не обязательно должны соответствовать вашим типам данных - вы можете настроить свою базу данных так, как лучше всего будет обслуживать ваше приложение, а не так, как ваши пользователи воображают это.
Поиск по всему сайту - еще один сценарий, в котором пригодятся спутниковые типы данных. В книге используется в качестве примера сайт TripAdvisor;
Из одной строки поиска вы можете искать страны, города, достопримечательности, отели и рестораны. В Bubble это означало бы одновременное выполнение пяти поисков, что вряд ли эффективно. Но вы можете использовать тип данных спутникового поиска, чтобы объединить несколько типов данных в один доступный для поиска тип данных, что позволит осуществлять поиск по всему сайту для любого количества различных типов записей.
Тип данных спутникового канала - это аналогичный способ объединения нескольких типов данных в случаях, когда необходимо связать разные типы данных друг с другом. Допустим, вы используете один из подключаемых модулей редактора Rich Text Editor, который, например, поддерживает теги , и хотите иметь возможность тегировать несколько типов данных, вы можете настроить тип спутниковой связи, который «представляет» несколько типов данных в поиске.