网站的数据库如何设计?

网站的数据库如何设计?,第1张

什么是好的数据库设计?

一些原则可为数据库设计过程提供指导。第一个原则是,重复信息(也称为冗余数据)很糟糕,因为重复信息会浪费空间,并会增加出错和不一致的可能性。第二个原则是,信息的正确性和完整性非常重要。如果数据库中包含不正确的信息,任何从数据库中提取信息的报表也将包含不正确的信息。因此,基于这些报表所做的任何决策都将提供错误信息。

所以,良好的数据库设计应该是这样的:

将信息划分到基于主题的表中,以减少冗余数据。

向 Access 提供根据需要联接表中信息时所需的信息。

可帮助支持和确保信息的准确性和完整性。

可满足数据处理和报表需求。

设计过程

设计过程包括以下步骤:

确定数据库的用途:这可帮助进行其他步骤的准备工作。

查找和组织所需的信息:收集可能希望在数据库中记录的各种信息,如产品名称和订单号。

划分到表中的信息:将信息项划分到主要的实体或主题中,如“产品”或“订单”。每个主题即构成一个表。

关闭信息项目导入的列 确定希望在每个表中存储哪些信息。每个项将成为一个字段,并作为列显示在表中。例如,“雇员”表中可能包含“姓氏”和“聘用日期”等字段。

指定为主键:选择每个表的主键。主键是一个用于唯一标识每个行的列。例如,主键可以为“产品 ID”或“订单 ID”。

设置表关系:查看每个表,并确定各个表中的数据如何彼此关联。根据需要,将字段添加到表中或创建新表,以便清楚地表达这些关系。

优化您的设计:分析设计中是否存在错误。创建表并添加几条示例数据记录。确定是否可以从表中获得期望的结果。根据需要对设计进行调整。

应用规范化规则:应用数据规范化规则,以确定表的结构是否正确。根据需要对表进行调整。

参考:数据库设计基础

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


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9818802.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存