写点什么

电子商务网站

用户头像
在即
关注
发布于: 2021 年 03 月 24 日
电子商务网站

需求分析

电子商务网站是一种在互联网上开展电子商务的平台。

一般来说,电子商务网站最基本的功能是在线购物。

常见的电子商务网站有淘宝、天猫、京东、亚马逊等。

电子商务网站分为前台和后台。

后台面向网站的运营人员,用于录入数据。

前台面向访问网站的用户,用于选购商品。

由于电子商务行业竞争激烈、需求变化快,往往对网站的开发时间要求比较严格,希望网站能尽早上线。

对于这样的需求,可采用迭代式开发,先追求小而精,将核心功能优先完成,为后期的扩展预留空间,然后再通过版本迭代逐渐发展成大而全。

设置数据库时需要注意的 4 个基本关键点

避免数据经常发生变化

避免经常修改表结构

尽可能详细地记录日志

避免删除数据

避免数据经常发生变化

在设计数据库时,应尽量保存不变的数据,以减少修改数据带来的开销。

例如,设计用户表时一般会保存出生日期而不是年龄,这是因为用出生日期和当前日期可以推算出年龄,而若保存年龄,数据每一年都需要发生一次改变。

避免数据经常发生变化

例如,热销商品的展示,需对所有商品的销量降序,然后取出前 n 条记录。当有大量用户同时访问时,就会给数据库带来极大的负担,导致页面打开缓慢。为此,可以利用 Memcached、Redis 等技术对热门数据进行缓存,以减少数据库的查询次数。读者可以查询相关资料了解这些技术。

避免经常修改表结构

对于已经上线的项目,修改表结构可能会导致服务暂停,如果有更好的方案,则尽量避免修改表结构。

例如,商品推荐功能不须在商品表中增加一个“推荐”字段,而是专门创建一个“推荐商品”表,将功能数据与商品数据分离,减少对商品数据产生影响。

需求分析

尽可能详细地记录日志

利用日志记录数据的变化,可以为将来的功能增加提供数据基础。

例如,当网站用户的账号被盗时,为了验明真实情况,需要确定账号被盗取的时间、登录的 IP 地址,以及充值、消费、订单等数据是否发生过变化。若没有记录日志,则难以追溯。

避免删除数据

对于已上线的网站,删除数据是非常敏感的操作,很有可能带来一些始料未及的后果。

例如,用户因误操作删除了订单,希望恢复订单,需要在项目中增加订单回收站功能。若数据库中的订单记录已被删除,即使增加了回收站功能,订单也无法恢复。

需求分析

避免删除数据

在设计数据库时,应考虑数据既可以被删除,又可以被恢复。

例如,在订单表中增加一个“是否删除”的字段,用来标识记录是否被删除。当查询订单时,通过 WHERE 获取未被删除的订单,当查询订单回收站时,通过 WHERE 获取已删除的订单。

在 MySQL 中创建一个 shop 数据库,用来保存电子商务网站中的数据。

在创建数据库后,使用 USE shop 选择数据库。

在对数据表命名时,为更好的区分项目,为所有的数据表加上“sh_”前缀。

例如,商品表命名为 sh_goods。

准备工作

在实际开发中,使用各种编程语言编写应用程序访问数据库时,最常见的问题是没有对用户输入的数据进行处理,直接使用字符串拼接到 SQL 中,这样会导致用户输入的一些特殊字符(如单引号、反斜线、百分号等)被解析,破坏了原有 SQL 的语义,出现 SQL 注入等安全问题。

因此,在编写应用程序时,一定要对特殊字符进行转义,或者借助一些库或框架来完成处理。

商品分类表用于保存分类名称、分类排序、是否显示等信息,并要求支持多级分类嵌套。

商品分类表

对于 is_show 字段,其数据类型选择 TINYINT 而不是 ENUM,这是考虑到需求将来有可能会发生变化,ENMU 类型在增加枚举值时需要修改表结构,而 TINYINT 类型不需要修改表结构。

如果父分类的 isshow 值为 0,则该分类和它的子分类都不会显示。子分类必须满足自身 isshow 和父分类 is_show 都为 1 时才会显示。


发布于: 2021 年 03 月 24 日阅读数: 7
用户头像

在即

关注

还未添加个人签名 2021.02.27 加入

还未添加个人简介

评论

发布
暂无评论
电子商务网站