经销商定位器mysql和php

时间:2015-04-26 15:27:22

标签: php mysql sql relational-database

我有一个项目,那里有一个经销商定位器,应该找到该地区的经销商。 经销商提供多种不同品牌(例如:水泥砖等)。

这些项目具有子类别,并且还可能具有可变长度子类别。 子类别下是品牌。 品牌是该产品的最低级别,这意味着没有最终产品,所有这些都是产品
这些经销商有一个位置,用于在谷歌地图上映射它们 定位器必须具有过滤器,其中可以选择类别,然后选择子类别,如果存在子子类别。也可以选择产品的品牌和数量。

我尝试过不同的方法来创建数据库,但都失败了。 我在访问选择每个过滤器选项后必须显示的产品时遇到困难。

我的问题:

  1. 我应该为每个产品创建一个表,如果是的话,那将是什么 属性?
  2. 如何处理可变长度子类别?
  3. 如何根据类别或子类别或品牌访问每个产品。
  4. 示例架构:

      

    表:类别(Parent_ID | Category_ID | Category_Name);
      表:产品(Dealer_ID | Brand_ID |数量); - 每个产品的表格
      表:品牌(brand_ID | CATEGORY_ID | BRAND_NAME);
      表:经销商(dealer_ID | lat | long | name ...等);
      当页面加载时,所有经销商都会根据位置显示在地图中   在选择每个选项时,页面将根据选择重新加载并显示经销商   使用我当前的架构,我无法根据选择访问它们。

1 个答案:

答案 0 :(得分:1)

我会创建一个单一的产品表,并为每个独特的产品创建一个条目(每个分类排列不是一个)。所以水泥砖,铲子,锤子等

对于类别,我将创建一个具有以下字段的类别映射表: product_id(int), parent_category_id(int), child_category_id(int)

这两个字段都会映射到类似于:id(int), name(text), status_id(int), created_at(timestamp), updated_at(timestamp), deleted_at(timestamp)

的类别表

此实现允许您拥有任意数量的子类别,并且允许轻松查找,因为您只需要查看child_category_id是否与请求的过滤器中的一个匹配。

至于品牌问题,这实际上取决于您对品牌的详细程度。如果您不需要除了...之外的其他任何名称,您可以使用First Normal Form并将品牌放在产品条目本身上(作为产品表中的列)。如果您需要更多细节,和/或需要将单个品牌与多个产品相关联,您可以使用基本外部参照。