Учитывая следующую структуру:
City
Area
User
В каждом районе есть 1 и только 1 город.
У каждого пользователя есть хотя бы одна, но, возможно, несколько областей.
У каждого пользователя есть 1 и только 1 город.
Какой самый элегантный способ смоделировать это?
В настоящее время у меня есть:
User,
UserArea,
Area,
City
Где UserArea - отношение 1: M с пользователем, а Area - 1: 1 с City.
Проблема заключается в следующем:
Пользователь может иметь 3 или 4 Области под текущей моделью, но 2 Области могут быть в Городе "1", а другие 2 Области могут быть в Городе "2". Это нарушение бизнес-правил.
Должен ли я просто ввести ограничение, чтобы предотвратить подобные вещи, или есть лучший подход для дальнейшей нормализации, чтобы парадокс такого типа был невозможен? Если да, то как можно смоделировать эту систему так:
1 пользователь = 1 город;
1 район = 1 город;
1 пользователь = M Области;
Спасибо за ваши идеи.