NHibernate и Hilo Generator: как создавать таблицы ключей?

Я собираюсь переключить некоторые из моих сущностей с идентичности на Hilo ID-генератор.

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

  • я должен использовать одну таблицу для всех объектов или для группы связанных объектов?
  • я должен использовать другую таблицу для каждой сущности?
  • я должен использовать одну таблицу с другой строкой или столбцом для каждой сущности?

Есть ли лучшие практики? Что нужно учитывать? Есть ли плюсы или минусы для любого из подходов?

1 ответ

Решение

Я не думаю, что есть одна "лучшая" практика, но важно понять, как работает HiLo:

  • Генератор таблицы hilo предназначен для баз данных, которые не поддерживают последовательности, которые более естественно подходят для этой задачи.
  • Значение Hi для класса извлекается и обновляется при первом сохранении экземпляра этого класса или при исчерпании значений Lo.
  • Разное значение Hi используется для каждого класса.

Итак, вам нужно рассмотреть как минимум две переменные:

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

После этого, это просто вопрос вкуса.

Другие вопросы по тегам