绘制产品和商店的策略,也许是国家?

时间:2010-12-26 00:16:20

标签: mysql database schema

我看到它的方式: 据说一个国家有1000万家商店(实际上更多)。 这1000万家商店至少销售了5000万种独特产品。 (实际上更多)。

所以要把它映射出去,我猜它会像:pk_id,store_id,product_id

但是这样我们每个国家将有5亿行x甚至需要100个国家= 500亿行。不是一个非常有效的表来进行查找,读/写等。

是否有更好的方法来映射产品,商店,然后添加国家?

我没有在网上商店或网上商品中添加几乎这个尺寸的三倍。

3 个答案:

答案 0 :(得分:0)

每家商店都在特定的国家/地区。

您可以使用一个表来存储商店和国家/地区之间的关系,以及另一个表来保存商店和该商店中销售的商品之间的关系。

要使查找有效,您需要添加索引。

答案 1 :(得分:0)

不要将所有内容存储在一个表中。这是你应该怎么做的:

  1. 将产品存储在products表(product_id,etc / Index product_id)
  2. 将商店位置和国家/地区存储在单独的表中(id,store_id,country_id /创建一个名为store_country的索引,其中包含store_id,country_id列)
  3. 通过这种方式,您可以在38个(随机)国家/地区拥有5000万个产品(5000万行)和5000万个商店,假设每个商店在每个国家/地区都有一个位置,并且每个商店销售每种产品(不切实际),则可以拥有1,900,000,000行。

    我喜欢大数字。

答案 2 :(得分:0)

  • 一个产品表
  • 国家/地区的一个表格(使用ISO国家/地区代码作为PK)
  • 商店的一个表(包括Countries表的外键)
  • 一张用于映射产品和商店的表格。使用{product_id, store_id}作为主键)

如果您的公司与大多数公司一样,我认为您会发现并非所有商店都出售所有产品,使得映射表比您预期的要小得多。 (如果所有商店都销售所有产品,则您不需要映射表)