Ниже показано, как выглядит моя реляционная база данных в MySQL:
[House]
id
street_id
[Street]
id
city_id
name
[City]
id
province_id
name
[Province]
id
name
С этой структурой, когда у меня есть идентификатор дома, я могу получить название провинции в реляционной цепочке, следуя Laravel Eloquent следующим образом.
$house = House::where(['id' => 1])->with('street.city.province')->firstOrFail();
$province = $house->street->city->province;
В некоторых случаях мне не нужны данные в таблицах Street
и City
. Мне нужно только знать, в каком Province
доме находится. Является ли хорошей практикой также прямое соединение таблицы House
с таблицей Province
следующим образом?
[House]
id
street_id
province_id
Делая это, я могу напрямую получить провинцию без цепочек с street
и city
следующим образом.
$house = House::where(['id' => 1])->with('province')->firstOrFail();
$province = $house->province;
Является ли это хорошей практикой, если вы делаете это или слишком убиты, потому что House
уже связан Street
с street_id
?