gpt4 book ai didi

电子商务项目的数据库设计(我应该使用 EAV 方法)

转载 作者:太空狗 更新时间:2023-10-30 01:54:43 28 4
gpt4 key购买 nike

我即将设计我的第一个电子商务数据库。

我在大多数电子商务网站上发现的是,这些网站有类别,然后是子类别,然后又是子类别,依此类推。并且SubCategory的深度不是固定的,一个Category有六个嵌套的Sub Category,而其他的有不同的子Category

现在所有的产品都有与之关联的属性。

现在我的问题是这些网站是否继续为嵌套子类别添加表格并继续为数据库中的属性添加列

他们应用称为“EAV”模型的东西(如果我是对的)来解决这个问题,或者他们继续添加列和/或表格并继续更新网页,因为在许多网站上我发现现在有一个新的类别。

(如果他们使用 EAV 模型,那么网站性能会受到影响,不是吗..)

由于这是我的第一个电子商务项目,请提供您的一些宝贵建议。

谢谢,

感谢任何帮助。

最佳答案

您需要的是产品特性的 EAV产品类别的嵌套集组合

虽然我当然同意 EAV 几乎总是一个糟糕的选择,但 EAV 是完美选择的一个应用程序是处理在线目录中的产品属性。<​​/p>

想想网站是如何显示产品属性的……产品的属性总是显示为一个有两列的垂直列表:“属性” | “值(value)”。有时,这些列表会显示多种产品的并排比较。 EAV 非常适合做这种事情。使 EAV 对于大多数应用程序毫无意义且低效的因素恰恰使 EAV 对于在线目录中的产品属性有意义且高效。

每个人总是说“EAV 是邪恶的!”的原因之一。是 EAV 中的属性是“无意义的”,因为列名(即属性的含义)是表驱动的,因此不是由模式定义的。模式的全部意义在于为您的模型赋予意义,因此这一点得到了很好的理解。 但是在在线产品目录的情况下,产品属性的含义对系统本身来说并不重要。您的目录系统关心产品属性的唯一原因是将它们转储到列表或产品比较矩阵中。因此,EAV 并非碰巧是邪恶的在这种特殊情况下

对于产品类别,您需要一个嵌套集合模型,正如我在对 this question 的回答中所描述的那样.嵌套集使您能够非常快速地检索,并能够遍历不平衡层次结构的多个级别,但代价是在编辑时需要进行一些预先计算工作。

关于电子商务项目的数据库设计(我应该使用 EAV 方法),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10010992/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com