建材秒知道
登录
建材号 > 设计 > 正文

多用户商城数据库如何设计

狂野的衬衫
曾经的裙子
2022-12-31 23:31:34

多用户商城数据库如何设计

最佳答案
怡然的指甲油
美丽的小蝴蝶
2025-05-01 09:21:31

差不多都是一个 文章表,用户表,分类表,设置表。

1、数据库分离成前台和后台,通过链接表关联;

2、把前台做成弹出窗体,禁止用户使用导航选项和菜单之类;

3、把前台编译成ACCESS2007的accde文件(对应ACCESS2003的mde文件);

4、把这个accde文件也放在服务器端,客户端通过winform之类exe来远程打开。

前3步都比较正常,第4步的看起来应该比较奇怪。我的想法是,如果accde文件也放在客户端,高手会不会通过反编译就可以进入到数据库看到链接表?感觉上“禁止Shift”,“隐藏表”这类手段只对菜鸟有用。

最新回答
纯情的超短裙
傲娇的小伙
2025-05-01 09:21:31

思路一,使用独立的商品类表, 构造商品属性信息,1、N个商品类属性值表,2、商品基本信息表,3、商品属性表

思路二,使用key-value模型,使用动态行列转换模型,将商品属性信息碎片化存储,整合型只读输出快照,1、公共键值表,2、公共类表,3、公共键类表,4、属性值物化表,5、商品基本信息表,6、商品属性表,6、商品属性快照表或模型

虚幻的香烟
暴躁的玉米
2025-05-01 09:21:31

这个问题的核心点在于:不同商品类别差异很大,如何设计通用的存储方案?简单来说,用数据库去存储所有信息,不管横表还是纵表,都有明显的缺陷:横表:同一个字段对不同商品含义不一样,这到了后面开发和维护是很蛋疼的纵表:一个商品的属性分布到很多行记录中,业务处理很麻烦,而且纵表的记录数会非常多,性能会有问题所以不要尝试只用数据库去统一解决这个问题,思路扩散一些其实就简单了:公共表:提炼商品公共的信息放到数据库,例如商品id、名称、发布的商家、发布日期、上架状态扩展表:将变化的信息放到另外一个表,可以是数据库表,例如电脑商品一个表、服装一个表;也可以将信息放到MongoDB或者ElasticSearch这类文档数据库。搜索组件:扩展表在全文搜索的时候不好实现,因此需要独立的组件负责搜索,可以用Elastic Search或者Solr来冗余一份数据,用于搜索。表结构不算复杂,因为项目关系只有SPU,没有涉及到SKU,但是可以做参考,更多的还是要根据项目实际情况设计。重点说明一下产品表的SPU,Keyword字段。本来之前设计了关系表,但是发现在做SQL查询时太痛苦,所以约定了一种数据存储结构(数据结构的重要性)基于上面的基础,可以实现URL规则变化的查询,类似京东的产品查询URL变化c=1,3 指分类层次关系ev=3_1+4_18 指SPU查询 按约定规则转换成字符串再进行查询。

寂寞的星月
优美的绿草
2025-05-01 09:21:31
首先来说对于这种场景有两种设计方法,这两种方法都能够满足扩展性要求

1. 把原有的横表转化为纵表存储属性,即

产品表:(product_id, product_name, product_class)

产品属性表:(product_id, property_id , property_name , property_value)

2. 保持原有横表设计思路,但是弹性字段含义单独元数据表存储

产品表:(product_id, product_name, product_class, prop1, prop2, .... propn)

产品属性含义元数据表

(product_class , prop1_name ,prop2_name, ..... propn_name)

对于两种设计方法,个人理解为

a. 对于首页打开就必须要能够快速查询出来的属性,而且这些属性本身各类产品差异不大。而对于差异大的属性基本都是针对特定一个产品查询。可以采用方案1来做。

b. 首页显示产品列表时候就存在要显示出不同产品属性情况,采用方案2来做。当我们处理的是一个product list的时候,由于存在数据表本身的关联场景,用方案1会比麻烦,也影响性能。

凶狠的皮带
苹果中心
2025-05-01 09:21:31
要这样,这样你会有无数多的表,而且以后新的一个产品时候非常麻烦,如果要属于新的类别,而且还会因为避免数据库太复杂而使得许多不同类的产品归在一个类。而且你的程序很麻烦,要为每个类编写不同程序,因为数据表名不同。

应该用下面的办法,主要使用四个表存储所有类别的商品:

第一、类别名称表,字段有

类别ID,类别名称

1 电脑

2 洗衣机

第二、类别属性表,字段有:

类别ID,属性ID,属性名称

1 1 CPU

1 2 内存

1 3 屏幕尺寸

2 1 容量

2 2 类型

第三、商品名称表,字段有:

商品ID,类别ID

1 1

2 1

3 2

4 2

第四、商品属性表,字段有:

商品ID,属性ID,属性值

1 1 P4

1 2 128M

1 3 CRT 14

2 1 P4

2 2 512M

2 3 LCD19

3 1 9公斤

3 2 滚筒

4 1 8公斤

4 2 波轮

上面定义了四个商品,商品ID为1~4,分别是128M、512M内存的电脑,和9公斤滚筒、8公斤的波轮洗衣机。

这样定义的数据库结构,可以包含任何商品,一般不会改变,那么程序也就无需改变,定义新的产品、或者修改现有商品只需要在程序界面有操作员点点鼠标。