У меня есть это в Zen Cart (и, вероятно, в osCommerce), в таблице заказов, и я удивляюсь, почему они пошли таким образом, даже больше, поскольку у них есть таблица адресов.
Единственная причина, которую я увидел, которая является действительной, заключается в записи: даже если клиент меняет свой адрес, информация о заказе не должна изменяться, она отражает данные на момент заказа.
Теперь, это немного расточительно, даже больше, если один и тот же клиент делает много заказов. Возможное решение - вести историю адресов и ссылаться на них с помощью заказов.
Интересно, следует ли хранить эти неизменяемые адреса (или изменяемые, если у них еще нет связанных заказов) в обычной адресной книге или в отдельной таблице истории, заполняемой только в том случае, если заказ сделан (избегая дубликатов, если один и тот же клиент сохраняет тот же адрес, конечно).
Преимущество первого состоит в том, что в нем отсутствуют две таблицы с очень похожими структурами и дублирующейся информацией, но они могут препятствовать производительности (?) По мере роста истории. Хотя люди редко меняют эту информацию, на практике.
Последнее имеет преимущество разделения ролей (одна является неизменной, а не другая), при этом история используется редко.
В целом, если вашему приложению не нужно вести историю, просто перейдите на две разделенные таблицы.