NHibernate и Hilo Generator: как создавать таблицы ключей?
Я собираюсь переключить некоторые из моих сущностей с идентичности на Hilo ID-генератор.
Я понятия не имею, как должны создаваться таблицы, содержащие значения следующего высокого уровня.
- я должен использовать одну таблицу для всех объектов или для группы связанных объектов?
- я должен использовать другую таблицу для каждой сущности?
- я должен использовать одну таблицу с другой строкой или столбцом для каждой сущности?
Есть ли лучшие практики? Что нужно учитывать? Есть ли плюсы или минусы для любого из подходов?
1 ответ
Решение
Я не думаю, что есть одна "лучшая" практика, но важно понять, как работает HiLo:
- Генератор таблицы hilo предназначен для баз данных, которые не поддерживают последовательности, которые более естественно подходят для этой задачи.
- Значение Hi для класса извлекается и обновляется при первом сохранении экземпляра этого класса или при исчерпании значений Lo.
- Разное значение Hi используется для каждого класса.
Итак, вам нужно рассмотреть как минимум две переменные:
- Разногласие. Вы можете немного улучшить производительность, используя отдельные таблицы
- Спектр. С очень большой базой данных вы рискуете в конечном итоге исчерпать значения Hi.
После этого, это просто вопрос вкуса.