По моему опыту, страны не имеют внутренних идентификаторов.(Ваш домен может отличаться.) Таким образом, если он не существует в вашем домене, и вы занимаетесь проектированием, управляемым доменом, вам следует избегать искусственного понятия, такого как идентификатор страны.
Предположим, у вас есть таблица Address
в базе данных.Вместо хранения CountryId
, вместо этого сохраните CountryAbbreviation
.Это естественный ключ.
Теперь, как вы убедитесь, что в вашем адресе был только действительный country_id?Если вы контролируете всех клиентов (например), то вы делаете что-то вроде этого:
<select>
<option value="US">United States</option
<option value="UK">United Kingdom</option
</select>
Выше вы можете видеть, что атрибут value
- это сокращение страны.
Если отчеты не основаны на аббревиатурах стран, вам на самом деле не нужно быть уверенными в их непротиворечивости (если это не очень важно для вашего домена).