Допустим, у нас есть три таблицы Customer, City и Country.
Таблица страны:
- ID(PK)
- Имя.
Таблица города:
- ID (PK)
- CountryID (ФК)
- Имя
Таблица клиентов:
- ID(PK)
- CountryID(FK)(NULL)
- CityID(FK)(NULL)
- Имя и тд...
Как вы можете догадаться, Заказчик мог назначить или не назначить CityID или CountryID.
Итак, как лучше всего гарантировать, что при вставке/обновлении клиента мы не получим город, который не находится в указанной стране?