【问题标题】:How can my address column in my orders table reference multiple types of address formats?我的订单表中的地址列如何引用多种类型的地址格式?
【发布时间】:2021-10-16 03:29:44
【问题描述】:

我在 SQLite 中这样做

问题是我的订单表需要有一个地址才能交付,但世界各地有许多不同的地址格式,所以我为每种不同的格式都有一个表。

格式示例:

  1. 美国和类似地址 - 地名、街道地址、公寓号码、城市、州、国家/地区、邮政编码

  2. 非洲的某些地方 - 地名、国家、州、邻里、地标、与地标的距离、与地标的方向

  3. 还有许多其他有效的收货地址格式。

所以我的想法是:

  1. 向引用每种地址格式的订单表添加空列,使用检查约束来确认至少有一个地址。
  2. 有单独的表,例如 order_us_address、order_africa_address
  3. 创建一个名为 master_address_id 的表,然后在每个地址格式表中引用它,这样我就可以在订单表中引用该 master_address_id

这里的最佳做法是什么?还有其他选择吗?

【问题讨论】:

    标签: sql sqlite database-design


    【解决方案1】:

    单个地址表应该可以正常工作。我假设您想要保存所有单独的地址字段,因此只需将它们添加到您的表中。对于任何单独的地址记录,其中很多列都会为空,但这不是问题。

    然后为邮寄地址行添加列(最多为邮寄地址中的最大行数)。根据您大概知道如何为每个国家/地区构建邮寄地址的逻辑,适当地填充这些邮寄地址行。

    【讨论】:

      猜你喜欢
      • 2015-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-10
      • 2013-05-29
      • 1970-01-01
      • 1970-01-01
      • 2020-01-10
      相关资源
      最近更新 更多