开发一个网络商城,那商品这么一个实体要怎样设计才比较不容易数据库表巨多?

发布于 2021-11-25 11:08:42 字数 326 浏览 893 评论 3

如题,我想开发一个网上商城,在数据库设计的时候,我想到,我们商城里的商品有很多种类,不同种类的商品是有不同属性的,我想到的二种方案

一:先抽象一个公用的“商品”实体,然后每一个具体的类型的商品继承这个实体,可是这样子设计的话,不同种类的商品一多的话,那么表就越多。感觉还是很糟糕。

二:直接在”商品“这个实体里添加多一个属性,属性的值按约定的规则(如键值对)来描述包括这个商品种类信息,这样子的话就只要一张表就行。不过这样子做的话,在展示商品信息需要在前台对这个属性值进行分离,感觉好像哪里不太符合规范。

我还是一名学生,见识浅了些,请问公司里类似的情况一般都是如何设计的?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

醉生梦死 2021-11-26 12:15:56

可以这里理解商品的属性:tags

商品作为一个 单一载体,但属性 在某些商品中可能会重复。

那么就建立一个原始的tags 表。 这里只存放一些 简单的描述。或者基础属性

然后再加一个 tags + 商品关联 表。这里做一个详细的属性扩展。

滥情空心 2021-11-25 22:23:18

感觉你的方案2还可以。对比我的方案2,发觉自己二了!

卸妝后依然美 2021-11-25 17:40:55

这个问题我也曾经纠结过一段时间,属于扩展属性,比如有两个商品,电脑和书,属性完全是不同的

最后我想有两个解决办法比较好

1:商品表的字段搞多一点,比如搞10个多余的字段用于扩展

2:新增加一张表,里面有3个字段,商品Id,属性名称,属性值

第一种通过sql搜索起来肯定好的多,但是属性有限,不可能无限扩展,第二种sql搜索效率肯定很低,但是通过全文索引可以弥补一些

不知还有哪位大神能更好的办法!求分享

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文