小编Len*_*ton的帖子

存储送货地址最佳实践

我正在构建一个结帐系统,它需要将客户的送货地址存储在数据库中,但我不确定最好的方法。

目前我有一个地址表,它存储每个地址的唯一 ID:

id | address         | city     | division   | country | postcode
-----------------------------------------------------------------
1  | 23 Example Road | York     | Yorkshire  | GB      | PE21 5QR
2  | 7 Lala Land     | Stockton | California | US      | 96341
Run Code Online (Sandbox Code Playgroud)

然后我有一个称为 account_addresses 的多对多关系表,它将地址链接到用户帐户:

account_id | address_id
-----------------------
23         | 1
48         | 2
Run Code Online (Sandbox Code Playgroud)

为了将送货地址存储在数据库中,我将允许用户选择他们现有的地址之一,或者让他们向他们的帐户添加一个新地址并将该地址 ID 存储在订单表中。但是,我意识到如果我只存储地址 ID,如果用户编辑该地址,则会更改送货地址,从而导致错误。

我只看到两种解决方案:

  1. 将送货地址作为新行存储在地址表中,尽管这会复制已经存在的数据。
  2. 当用户编辑他们的地址时,它会插入一个新地址并将旧地址保留在数据库中,而不是更新数据。

什么是最好的解决方案,为什么?

mysql

7
推荐指数
1
解决办法
8103
查看次数

标签 统计

mysql ×1