Я не могу дать конкретный совет - я могу избежать подобных вопросов в своем собственном проекте, потому что я использую автоматическое сопоставление Fluent NHibernate (FNH).
С помощью FNH вы можете автоматически генерировать схему базы данных из объектной модели.
Он будет генерировать первичные и внешние ключи по мере необходимости - мне даже не нужно об этом думать.
Если ваше приложение будет иметь только две таблицы, FNH, вероятно, не стоит того, но для больших баз данных реального мира я считаю, что это гораздо более продуктивный способ работы.