我有一个要求,设计一个电子商务应用程序的数据库,有一个广泛的产品类别范围从针到飞机。所有产品都有不同的功能。例如,手机具有特定功能,如内存,相机百万像素,屏幕尺寸等,而房屋具有地块大小,楼层和房间数量,车库大小等。这些特定功能与我们的产品一样多。惠斯特都有一些共同的特征,其中大部分都是非常不同和具体的特征。所以,在设计数据库时它有点混乱。我是第一次这样做。有很多产品类别的电子商务网站的数据库设计
我的查询是关于数据库设计的。这是我打算做的:
- 创建一个所有领域的主表,告诉如果一个字段是共同的或特定的,并映射他们与各自的产品类别。所有产品将具有“共同”字段,但“特定”仅针对一个类别显示。
表:ALL_COLUMNS
列: ID, 名, 类型(公共的或特定的), 类别(电话,汽车,膝上型等)
在显示前面的字段时,从all_columns表中取出各个字段。
存储与映射字段
沿另一个表中的用户数据
表:ALL_USER_DATA
列: ID, ColumnID的, 值
我不知道是什么是正确的方式,以及如何完成已建立的应用程序和网站。所以,如果有人能够判断这是否是电子商务应用程序的数据库架构的正确方式,并且具有高度全面和稀疏的类别和功能,我期待着。
谢谢大家。
这不是RM是一个糟糕的配合,它是数据库管理系统不充分支持相应的DDL。 (通过受限的DDL被用户界面和优化的表格操作符调用)。只有缺乏支持才使我们“不想”这样做。从更改模式查询表与查询静态模式中的JSON/XML值的查询完全相同。 EAV和JSON/XML都将用户实际关心的表格编码为其他数据结构。如果您确实想要以非制表形式查询或实施该数据(从来就不是EAV的情况),那么请使用这些数据类型。 – philipxy
感谢@ neville-k,正如在引用的链接中提到的,我认为EAV并不完全是一个坏主意,但我喜欢你推荐的方法。您能否介绍一下我们如何以及在桌面和JSON上保存什么,以便您的方法更加清晰? – chuck
如果不知道模式,很难具体说明在关系表中保存什么。通常情况下,我会将所有产品类型在关系表中的数据以及其他所有内容保存在JSON中... –