Разработка адреса и модели клиента
Я столкнулся с проблемой, когда проектировал адрес и классы (модели) клиентов.
class Customer
(String) first_name
(String) last_name
(String) document_id
(String) phone
(String) email
(Address) contact_address
(Address) billing_address
class Address
(String) street
(String) block
(String) apt
(Location) location
class Location
(String) zip_code
(String) city_name
(State) state
(Country) country
class State
(String) name
(Country) country
class Country
(char[2]) tld
(String) name
Но информация в State.country удваивается с Location.country. Однако я не могу представить ситуацию, когда страна не была назначена государством. В противном случае, если я опущу поле страны из класса Location, было бы странно получить все объекты локаций из одной страны.
Я что-то пропустил?
Как насчет:
class Address2
(String) street
(String) block
(String) apt
(String) zip_code
(String) city_name
(String) state
(String) country
Однако я потеряю дополнительную информацию о tlds и буду хранить дублированные (не оптимизированные) данные в Location.state и Location.country
1 ответ
Зачем вам нужна страна в классе Location?
Точно так же, как вы можете получить tld из state.countryId, вы можете получить страну из location.stateId.