Зависит от того, что вы хотите сделать.
Во втором примере с таблицами привязки, если я хочу сделать снимок почты для моих клиентов, тогда мой запрос должен перейти в таблицу привязки агентства, чтобы исключить любые адреса агентства.
Конечно, у вас может быть столбец типа адреса для дифференциации, но тогда у вас есть более сложный запрос для оператора вставки.
Таким образом, хотя «адрес» является глобальной идеей, иногда легче выделить его по контексту.
Во-вторых, ваши данные о клиентах обычно меняются гораздо больше, чем данные вашего агентства. В отношении хранения личных данных могут также существовать организационные и юридические требования, которые облегчают разделение этих данных.
например. в системе медицинской документации я хочу иметь возможность легко извлекать / ограничивать данные клиента и хранить данные о конфигурации или вводе в эксплуатацию отдельно.
Таким образом, во всех клиентских системах, которые я использовал, модель имеет тенденцию быть первой, которую вы описываете, а не второй.