gpt4 book ai didi

mysql - 存储订单地址的最佳策略

转载 作者:行者123 更新时间:2023-11-29 03:58:08 26 4
gpt4 key购买 nike

我有一个“策略”问题。

事实是,我们有一张客户地址和客户订单表。结构类似于(只是一个例子,忽略归档类型等):

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 格式导出这些数据,他们希望再次正确拆分这些行。因为有时没有 line2 或 state 或 zip 或其他任何东西,我们如何以一种方式存储这些信息,然后我们可以破译每行的“标签”?

建议存储为 JSON 编码数组,但这是最好的方法吗?我考虑过将其存储为 XML ......或者创建 6-10 个额外的列并在每个订单中存储地址数据?也许你们中的一些人在处理此类问题方面有更多经验,能够为我指明正确的方向。

提前致谢!

最佳答案

我个人会将地址建模为单个表,地址的每次更新都会生成一个新行,这将被标记为当前地址。

我想如果没有相关订单,您可以允许删除,但是将旧记录标记为不活动会更简单。

这将使您能够保留顺序和地址之间的关系,方便日后查询历史数据。

请参阅 slowly changing dimensions 的维基百科条目

关于mysql - 存储订单地址的最佳策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7741107/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com