Php 电子商务产品过滤数据库设计

Php 电子商务产品过滤数据库设计,php,mysql,activerecord,yii,e-commerce,Php,Mysql,Activerecord,Yii,E Commerce,我正在创建一个电子商务网站,我的产品按类别分组(就像在任何其他电子商务系统中一样) 问题在于:不同的类别(以及其中的产品)需要有不同的属性(比如电视的智能电视与否) 因此,有人可以帮助我了解一些产品过滤“理论”(db设计),遵循哪些良好实践 我如何能够自动“构建”这些产品类别页面(自动构建过滤器,例如:在电视类别a中是否切换智能电视,在手机类别智能手机是否) 谢谢你的帮助 大多数电子商务系统使用具有无限级别的类别树 然后,在编辑产品时,您会显示带有复选框的树,并单击要将此产品分配给的类别的复选框

我正在创建一个电子商务网站,我的产品按类别分组(就像在任何其他电子商务系统中一样)

问题在于:不同的类别(以及其中的产品)需要有不同的属性(比如电视的智能电视与否)

因此,有人可以帮助我了解一些产品过滤“理论”(db设计),遵循哪些良好实践

我如何能够自动“构建”这些产品类别页面(自动构建过滤器,例如:在电视类别a中是否切换智能电视,在手机类别智能手机是否)


谢谢你的帮助

大多数电子商务系统使用具有无限级别的类别树

然后,在编辑产品时,您会显示带有复选框的树,并单击要将此产品分配给的类别的复选框

为此,您需要以下表格:product、category和category\u has\u product。因此,当您选中这些复选框时,所有这些类别都应插入到该产品的类别中

然后,当搜索时,您加入类别为_has _的产品,非常简单

否则,如果您希望用户能够从树的末尾仅选择一个类别,但您希望能够筛选父类别中的产品并将其包含在子类别中,您可以查看类似的内容,理解起来更复杂,但您可能会找到其他一些关于如何实现它的示例:

嵌套类别的要点是,您可能最终只在产品表上存储最终的类别id,但即使如此,您也可以做一些魔术,将该产品包含在所有父类别的搜索结果中

因此,上述内容将涵盖“如何对产品进行分类管理”

至于链接:你可以在分类树中循环并打印你想要的链接和你想要的方式

至于其他过滤器,如电视类型(智能或非智能),您可以只在类别树中包含这两个过滤器,而不必在产品表单中添加其他字段,或者使用类似属性的更复杂的解决方案:

您将拥有表属性(id、名称)和表属性\u值(id、属性\u id、值),然后在产品表单上,您将循环到属性表中,并拥有一个名为“智能电视”的属性,值将是“是、否、可能等”,而不是“此电视是智能的”,因此,您可以使用它来绘制动态下拉列表

现在,如果您还需要属性的链接,那么您只需创建一个指向类别和具有特定值的特定属性的链接。示例/category.php?id=2&attribute=1&attribute\u value=5

另外,如果您想拥有一些seo友好的URL,只需在category表和attribute_values表中添加一个“slug”字段,然后重写URL即可


你也可以看看Prestashop,它使用或使用了这里讨论的一些东西,即使现在它变得非常复杂,非常麻烦,但可能会提供一些有用的信息。

使用NoSQL数据库不是更好的处理此类分层数据的方法吗?