开发一个网络商城,那商品这么一个实体要怎样设计才比较不容易数据库表巨多?
如题,我想开发一个网上商城,在数据库设计的时候,我想到,我们商城里的商品有很多种类,不同种类的商品是有不同属性的,我想到的二种方案
一:先抽象一个公用的“商品”实体,然后每一个具体的类型的商品继承这个实体,可是这样子设计的话,不同种类的商品一多的话,那么表就越多。感觉还是很糟糕。
二:直接在”商品“这个实体里添加多一个属性,属性的值按约定的规则(如键值对)来描述包括这个商品种类信息,这样子的话就只要一张表就行。不过这样子做的话,在展示商品信息需要在前台对这个属性值进行分离,感觉好像哪里不太符合规范。
我还是一名学生,见识浅了些,请问公司里类似的情况一般都是如何设计的?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
可以这里理解商品的属性:tags
商品作为一个 单一载体,但属性 在某些商品中可能会重复。
那么就建立一个原始的tags 表。 这里只存放一些 简单的描述。或者基础属性
然后再加一个 tags + 商品关联 表。这里做一个详细的属性扩展。
感觉你的方案2还可以。对比我的方案2,发觉自己二了!
这个问题我也曾经纠结过一段时间,属于扩展属性,比如有两个商品,电脑和书,属性完全是不同的
最后我想有两个解决办法比较好
1:商品表的字段搞多一点,比如搞10个多余的字段用于扩展
2:新增加一张表,里面有3个字段,商品Id,属性名称,属性值
第一种通过sql搜索起来肯定好的多,但是属性有限,不可能无限扩展,第二种sql搜索效率肯定很低,但是通过全文索引可以弥补一些
不知还有哪位大神能更好的办法!求分享