описание реализации:
улица не находится в районе т.к. одна улица проходит через несколько районов - А не пофиг ли, где проходит улица?
один дом содержит несколько адресов (находится на углу дома) - это какой то другой глобус(или настолько частная задача, что решается простым ограничением.)
в ООП
что от чего зависит и что кого порождает?
OOП - объектно ориентированное программирование. Способ отражения в коде объектов реального мира.
Таким образом если есть дом, то он ваще не как не относиться к адресу, дом это стены фундамент окна, но не как не улица адрес район, то есть 1) вы не правильно формулируете задачу, и мы должны были понять что вы имеете ввиду "номер дома"
ну и дальше что у нас адрес
Город, Район, Улица, Номер дома, Номер квартиры,
адрес для нас может быть объектом, а вот, каждая из соответсвующих сущностей это просто сущность, никак не определяющая ничего из реального мира -> мы по номеру квартиры не можем вычислить адрес, так же как и по городу, поэтому логично предположить что все это есть суть одной составной сущности.
То есть адрес это класс в котором мы можем оперировать свойствами
city
raion
street
nh
nf
Это же и храним в базе, и соответственно, следуя логике, если у нас есть база и таблица адресов, то это и есть один класс а столбцы будут свойствами
Короче читайте самые основы ООП - зачем? почему? где? когда?