创建不在类别表中的商店类别,而是从属性表中搜索结果是正常的吗?
您可能遇到的陷阱是什么?我之前从未这样做过,但是现在当我在网站上使用具有许多不同属性的产品时,我发现创建了许多不太实用的类别(或者我错了),我试图在网上搜索但是没有找到关于这个db设计的信息(或者我没有正确搜索(?),也许这种方法有一些名称,比如编程模式?)。
例如:
Products: Levis[bottoms, jeans, blue], Dockers[bottoms, pants, black], Lee[bottoms, pants, violet]
Categories:
Bottoms [query:bottoms]
Pants [query:pants]
Violet Pants [query:pants, violet]
Jeans [query:jeans]
Products: Abibas[shoes, sport...], SuperBoots[shoes, boots, leather]
Categories:
"Shoes"[query:shoes]
"Leather boots"[query: boots, leather]
"Sport" [query: sport]
答案 0 :(得分:0)
从高度标准化的设计开始,以避免异常并保持干燥。仅在需要时进行优化。使用真实世界数据测试性能。
如果您要使用分层或网络类别,则应使用支持分层(“递归CTE”)查询的数据库(即不是MySQL)。
使用standard data modeling patterns来节省时间。
对于纯层次结构类别,请使用如下表格:
create table product_categories (
category_id int primary key,
name text not null,
parent_id int null references categories(category_id),
unique (name, parent_id)
);
并从product表到上表中有一个外键。
答案 1 :(得分:0)
另一种看待这种情况的方式 - 并不总是需要创建单独的类别 - 有时会过滤类别以使客户更容易找到他们想要的内容。因此,在您的示例中,客户说只向我展示那些由皮革制成的靴子,或者只用Violet颜色给我看裤子。
平衡您的市场 - 如果人们来到您的网站购买皮靴,那么将其作为自己的类别是有道理的。这是一个非常具体的目的地类别,也可能有很多子类别。
与紫罗兰色的裤子 - 也许这是某个目的地类别:-) 但最有可能的是它将是一个应用于类别的搜索过滤器。
对类别的另一个考虑是它们对于SEO非常重要,因此您希望保持核心类别结构一致,以便您可以得到适当的排名。