You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

При необходимости, модель данных системы SImpleOne может быть расширена созданием колонок в существующих таблицах. При этом важно помнить, что обновленная модель данных будет применяться ко всем дочерним таблицам, т.к. созданные колонки будут унаследованы. В случаях, когда это нежелательно, следует использовать другие способы расширения модели данных:

  • Наследование
  • Добавление атрибутов расширенной модели записи

Наследование


Наследование (также именуемое расширением таблиц) позволяет создавать дочерние структуры данных, наследующие все атрибуты родительской структуры, и дополняющие их своими собственными атрибутами. Это позволяет отказаться от большого количества дублирующихся колонок и выстроить иерархическую структуру объектов, в которой каждый следующий дочерний элемент представляет собой более узкое подмножество. Наследование может быть многоуровневым, т.е. дочерняя таблица может в свою очередь быть родительской для других таблиц.

При использовании наследования необходимо учитывать, что многие механизмы имеют опцию срабатывания и в рамках дочерних сущностей.

Наследуемые значения и связанная с таблицей логика могут переназначаться на уровне той или иной дочерней таблицы.

Механизм наследования работает хорошо при наличии небольшого количества дочерних таблиц и большого количества общих атрибутов между ними. Однако при увеличении числа дочерних таблиц и уменьшении числа общих атрибутов, управление данной моделью данных становится сложным.

У модели данных с большой, сложной структурой наследования есть недостатки:

  • Для хранения записей требуется больше места.
  • Снижается скорость выполнения скриптов.
  • Становится сложнее настраивать функции, связанные с определенной таблицей, такие как импорт данных, настройка форм представления и т.д.

Примером такой таблицы является каталог запросов: он состоит из родительской таблицы для каталога и записей в таблице для каждого шаблона запроса с определенными атрибутами.

Расширенная модель записи


При использовании расширенной модели записи (REM) не создаются новые таблицы и колонки, а создаются атрибуты данных, выборочно применяемые к определенным записям таблицы. При применении расширенной модели к той или иной записи, для нее создается вспомогательный набор записей, в котором хранится информация по значениям конкретных атрибутов. Таким образом у записи есть атрибуты, полученные от таблицы и, дополнительно, атрибуты, получаемые из расширенной модели (REM-атрибуты).

Благодаря REM-атрибутам можно обойти ограничения механизма наследования, добавляя к записям атрибуты, которые не будут наследоваться дочерними таблицами. Без REM атрибутов пришлось бы создавать большое количество уровней наследования, на которых родитель отличается от потомка наличием всего одного поля. Кроме того, REM-атрибуты могут объединяться в REM-модели, позволяющие осуществлять категоризацию объектов из одной таблицы. Примером такого использования является каталог услуг.

  • No labels