- X-flags
-
X-flags
X-flags (eXtended Flags - русск. расширенные флаги) — это структура таблицы базы данных, при которой существует возможность добавлять новые флаги для сущности, без изменения существующей структуры БД.
Содержание
Структура
keyField — внешний ключ. Данное поле — не уникальное.
flagName — имя флага
startTime — время начала действия флага. Если не задано, то флаг действует с текущего момента времени.
endTime — время окончания действия флага. Если не задано, то флаг действует постоянно.- Если по заданному keyField отсутствует строка с заданным flagName, то считается, что флаг не установлен.
- Если задано flagName, startTime, а endTime = NULL - то считается, что флаг действует бесконечно.
- Если задано flagName, endTime, а startTime = NULL - то считается, что флаг начинает действовать с текущего момента времени.
При добавлении строки в таблицу с такой структурой, добавляется новый флаг для модели(сущности) с заданным flagName, startTime, endTime. Выборка всех флагов одной модели(сущности) осуществляется по полю keyField.
История термина
Термин ввел в обращение Токарчук Андрей Михайлович в 2009г, сформулировав его значение в своей статье «Разработка паттерна ActiveModel для программирования интернет-приложения методом объектно-реляционного отражения».
Сфера применения
Таблицы с данной структурой находят свое применение при создании моделей, список флагов которых нельзя определить заранее. Ярким примером такой модели может быть профиль пользователя в социальных сетях, в котором есть некоторые флаги, добавляемые пользователем.
В настоящий момент применяется паттерне ActiveModel, а также в jabber-сервере Openfire.Ссылки
Wikimedia Foundation. 2010.