我有一个项目,那里有一个经销商定位器,应该找到该地区的经销商。 经销商提供多种不同品牌(例如:水泥砖等)。
这些项目具有子类别,并且还可能具有可变长度子类别。
子类别下是品牌。 品牌是该产品的最低级别,这意味着没有最终产品,所有这些都是产品
这些经销商有一个位置,用于在谷歌地图上映射它们
定位器必须具有过滤器,其中可以选择类别,然后选择子类别,如果存在子子类别。也可以选择产品的品牌和数量。
我尝试过不同的方法来创建数据库,但都失败了。 我在访问选择每个过滤器选项后必须显示的产品时遇到困难。
我的问题:
示例架构:
表:类别(Parent_ID | Category_ID | Category_Name);
表:产品(Dealer_ID | Brand_ID |数量); - 每个产品的表格
表:品牌(brand_ID | CATEGORY_ID | BRAND_NAME);
表:经销商(dealer_ID | lat | long | name ...等);
当页面加载时,所有经销商都会根据位置显示在地图中 在选择每个选项时,页面将根据选择重新加载并显示经销商 使用我当前的架构,我无法根据选择访问它们。
答案 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并将品牌放在产品条目本身上(作为产品表中的列)。如果您需要更多细节,和/或需要将单个品牌与多个产品相关联,您可以使用基本外部参照。