Хобрук: Ваш путь к мастерству в программировании

Можно ли сопоставить составной ключ в свободном nhibernate, где половина ключа является полем идентификатора в базе данных?

Как говорится в вопросе, можно ли сопоставить составной ключ в свободном nhibernate (или, как я полагаю, не свободно), где одно из двух полей, используемых в составном, является полем идентичности?

У меня есть таблица, в которой одна часть первичного ключа является полем идентификатора, а другая - идентификатором клиента. Это устаревшая база данных, в которой составной ключ используется в качестве внешних ключей повсюду, поэтому изменение базы данных будет весьма значительным.

Благодарность!


Ответы:


1

Если это действительно столбец идентичности, то он гарантированно будет уникальным для каждой записи, верно?

Если это так, вы можете полностью игнорировать идентификатор арендатора для целей сопоставления. Поля вашей идентификации будут уникальными в вашей основной таблице - И ваши ссылки на внешний ключ будут содержать этот уникальный идентификатор, поэтому идентификатор арендатора на самом деле не имеет значения.

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

Подумай об этом. Противоинтуитивно, но, вероятно, сработает.

23.10.2009
Новые материалы

Я собираюсь научить вас Python шаг за шагом
Привет, уважаемый энтузиаст Python! 👋 Готовы погрузиться в мир Python? Сегодня я приготовил для вас кое-что интересное, что сделает ваше путешествие более приятным, чем шарик мороженого в..

Альтернатива шаблону исходящих сообщений для архитектуры микросервисов
Познакомьтесь с двухэтапным сообщением В этой статье предлагается альтернативный шаблон для папки Исходящие : двухэтапное сообщение. Он основан не на очереди сообщений, а на..

React on Rails
Основное приложение Reverb - это всеми любимый монолит Rails. Он отлично обслуживает наш API и уровень просмотра трафика. По мере роста мы добавляли больше интерактивных элементов..

Что такое гибкие методологии разработки программного обеспечения
Что представляют собой гибкие методологии разработки программного обеспечения в 2023 году Agile-методологии разработки программного обеспечения заключаются в следующем: И. Введение A...

Ториго  — революция в игре Го
Наш следующий вызов против ИИ и для ИИ. Сможет ли он победить людей в обновленной игре Го? Обратите внимание, что в следующей статье AI означает искусственный интеллект, а Goban  —..

Простое развертывание моделей с помощью Mlflow — Упаковка классификатора обзоров продуктов NLP от HuggingFace
Как сохранить свои модели машинного обучения в формате с открытым исходным кодом с помощью MLFlow, чтобы позже получить возможность легкого развертывания. Сегодня модели упаковки имеют несколько..

Математика и интуиция - Часть 1
У каждой математической формулы есть доказательство. Часто эти доказательства слишком сложно понять, поскольку многие из них основаны на индукции, некоторые - на очень сложных наблюдениях, а..