Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Стратегия High-Low в ORM DORM для Firebird: Распределение Значений на Клиенте и Сервере

Delphi , Программа и Интерфейс , IDE и Компилятор

В данной статье мы рассмотрим стратегию High-Low (высокий-низкий) для идентификации объектов, предложенную Скоттом Амблером, и её реализацию в ORM DORM, предназначенном для работы с базой данных Firebird.

Основы стратегии High-Low

Стратегия High-Low предполагает, что идентификатор объекта состоит из двух частей: уникального HIGH значения, которое получается из определенного источника, и LOW значения, которое назначается приложением. При каждом получении нового HIGH значения, LOW обнуляется.

Применение в DORM

ORM DORM от Daniele Teti на данный момент поддерживает только суррогатные ключи (целые числа или строки). Планируется реализация поддержки естественных ключей (многофункциональных ключей), хотя разработка до этого этапа пока не дошла. Структуры для поддержки многофункциональных ключей внутри DORM уже подготовлены, но отсутствует реализация самой стратегии High-Low.

Реализация на клиенте и сервере

HIGH значение должно сохраняться на сервере, в то время как LOW значение выделяется клиентом. Для LOW значения подойдет обычный аллокатор, реализованный в виде класса.

Пример кода на Object Pascal для аллокатора LOW значения:

type
  TIdormLocalKeyGenerator = class
  private
    FNextValue: Integer;
  public
    constructor Create;
    function GetNextValue: Integer;
  end;

{ TIdormLocalKeyGenerator }

constructor TIdormLocalKeyGenerator.Create;
begin
  FNextValue := 0;
end;

function TIdormLocalKeyGenerator.GetNextValue: Integer;
begin
  Result := FNextValue;
  Inc(FNextValue);
  Result := Result mod 1000; // Пример ограничения диапазона
end;

Заключение

Разработчики DORM планируют добавить поддержку естественных ключей, включая стратегию High-Low, но пока это не реализовано. Однако, учитывая, что DORM является проектом с открытым исходным кодом, любой разработчик может внести свой вклад в реализацию этой стратегии.

Таким образом, если вы хотите использовать стратегию High-Low в DORM с базой данных Firebird, вам, возможно, придется реализовать необходимые компоненты самостоятельно, используя приведенные выше принципы и примеры кода.

Создано по материалам из источника по ссылке.

Стратегия High-Low в ORM DORM для Firebird предполагает распределение идентификаторов объектов, где сервер генерирует HIGH значения, а клиент назначает LOW значения, и рассматривается возможность реализации этой стратегии в ORM, не по


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




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


:: Главная :: IDE и Компилятор ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-02-10 18:22:59/0.0033929347991943/0