gpt4 book ai didi

mysql - 在数据库中存储分布数据组合的最佳方式

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:56:01 24 4
gpt4 key购买 nike

我需要将我的客户“分发区域”存储到数据库的最佳方式。

我销售的每件产品都具有以下属性:

  • 来自州
  • 来自城市
  • 来自邮政编码
  • 国家
  • 到市
  • zip

我的客户经常给我一份 list ,列出他们愿意从哪些分销区域购买我的产品。

给出的客户数据示例:

1) from CA,FL,HI,AK to zip codes 91367,12345,54321,98765

2) from 11111,22222,33333 to 44444,55555,66666

我在数据库中存储数据的方式是这样的:

我有一个包含 :fromState,fromCity,fromZip,toState,toCity,toZip 的表

我存储数据的方式是创建“FROM”和“TO”数据的所有可能组合,对于第二个示例,我得到以下行:

enter image description here

问题是,有时数据太长​​以至于在我的数据库中占用了数百万条记录,我正在寻找一种更好的方法来存储我的客户分销需求,然后检查我的产品是否在他们的区域内分布。

感谢您的任何建议!

最佳答案

我相信实现此目的最节省空间的方法是创建三个表:FromToClientFrom 表将是您表中的 from 列和 clientId 的附加列,您的 To 表将是您表中的 to 列使用附加的 clientId 列,您的 Client 表将有一个 clientId 和可能的客户端名称或其他识别标记。这会将您的开始和结束与您的客户相关联,而不是相互关联,并且具有 FROM + TO + 1 存储,而不是 FROM * TO 存储。

要处理 FromTo 的多对一或多对多关系,请保留建议的 FromTo 表结构,但将建议的client 表更改为关系表,例如FromtoToFromtoTo 表将有一列 From 关系 ID 和一列 To 关系 ID。 FromTo 表中的 clientId 列将更改为这些关系 ID。结构示例如下:

From
zip|fromRelId
001|1
002|1
005|2

FromtoTo
fromRelId|toRelId
1 |1
1 |2
2 |3

To
zip|toRelId
007|1
008|2
010|2
012|3

在这里,From request 1 匹配 To 请求 1 和 2,From request 2 匹配 To 请求 3。

关于mysql - 在数据库中存储分布数据组合的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45013939/

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