У меня есть вопрос «стратегии».
Дело в том, что у нас есть таблица адресов и заказов клиентов.Структура выглядит примерно так (просто пример, игнорируйте типы полей и т. Д.):
Address
id INT
line1 TEXT
line2 TEXT
state TEXT
zip TEXT
countryid INT
Чтобы сохранить историческую достоверность данных, мы храним эти адреса в текстовом поле с заказами (ранее это делалось по ссылке)., но это неправильно, потому что если адрес изменяет все старые заказы, адрес доставки тоже меняется, что неправильно).Например:
Orders
id INT
productid INT
quantity INT
delivery_address TEXT
delivery address
- это что-то похожее на CONCAT_WS("\n",line1,line2,state,zip,country_name)
Все хорошо и модно, однако кажется, что клиентам нужен доступ к историческим данным и возможность их экспортироватьв формате XML, и они хотят снова правильно разделить эти строки.Поскольку иногда нет строки 2, состояния, zip или чего-либо еще, как мы можем хранить эту информацию таким образом, чтобы мы могли затем расшифровать «метку» каждой строки?
Было предложено сохранение в виде закодированного массива JSON, ноэто лучший способ?Я думал о том, чтобы сохранить его в формате XML ... или, может быть, создать эти 6-10 дополнительных столбцов и хранить адресные данные при каждом заказе?Возможно, некоторые из вас, ребята, имеют больше опыта работы с подобными вещами и смогут указать мне правильное направление.
Заранее спасибо!