0

我正在尝试为电子商务项目设计数据库。

当前的模型是类别(它们自己有一个外键)和产品(它们有一个类别的 fk)。我现在要实现的是自定义属性。

本质上,我希望能够动态指定给定类别的属性。例如,在“监视器”类别中,我希望能够指定该类别中的产品将具有“分辨率”属性。请注意,这是我想要动态执行的操作 - 我不想在任何属性中硬编码。显而易见的解决方案是使用 EAV。然而...

当用户导航到给定类别时,我需要能够让他们根据自定义属性指定和过滤。换句话说,我想让用户导航到监视器类别并指定他们只想查看“分辨率”=“1080p”的监视器。好吧,这就是它变得复杂的地方。我需要知道,仅基于类别,哪些属性(如“分辨率”)可用,以及它们具有哪些可能的值(如“1080p”)。

我一辈子都找不到合适的模型……谁能指出我正确的方向?

注意:我目前正在使用 MySQL,但我绝对愿意接受其他选择。例如,我知道 NoSQL dbs 提供了拥有 N 个用户定义文件的能力(因为你只是存储任意数据)所以如果 MySQL 甚至 SQL 完全不能提供 1)相当优雅和 2)相当有效的解决方案,我完全愿意考虑其他技术。

4

1 回答 1

1

您可以尝试创建一个表,其中包含 FK 字段、自定义选项名称的另一个字段和自定义选项值的另一个字段,如下所示:

id = 1;
category_id = 1; // FK
custom_option = "resolution";
custom_value = "1080p";

id = 2;
category_id = 1;
custom_option = "touch sensitive";
custom_value = "0"; // 1=Yes / 0=No

所以当你的客户浏览监视器类别时,数据库可以返回这个类别特殊的自定义选项

于 2012-12-05T05:38:14.120 回答