У меня есть 2 модели (Агентство и Клиент) и два типа местоположения: Штат и Город. Я хочу сделать возможным установить местоположение (любой из штатов ИЛИ городов) для агентств и клиентов.
┌──────────────┐ ┌──────────────┐ ┌───────────┐ ┌───────────┐
│ agencies │ │ clients │ │ states │ │ cities │
├──────────────┤ ├──────────────┤ ├───────────┤ ├───────────┤
│ id │ │ id │ │ id │ │ id │
│ name │ │ ... │ │ name │ │ name │
│ location... │ │ location... │ │ acronym │ │ state_id │
└──────────────┘ └──────────────┘ └───────────┘ └───────────┘
Я думал о том, чтобы сделать полиморфизм из агентств и клиентов (обе таблицы будут иметь столбцы location_id
и location_type
), и это работает, но я хочу знать, есть ли какой-нибудь другой более умный и чистый способ сделать это (помня, что города принадлежат государствам, поэтому я смогу сделать $model->location->state
, если выбранное место для $model
это город).