【愚公系列】《Python网络爬虫从入门到精通》061-项目实战电商数据侦探(设计数据库表结构)

举报
愚公搬代码 发表于 2025/06/22 19:58:45 2025/06/22
【摘要】 🌟【技术大咖愚公搬代码:全栈专家的成长之路,你关注的宝藏博主在这里!】🌟📣开发者圈持续输出高质量干货的"愚公精神"践行者——全网百万开发者都在追更的顶级技术博主!👉 江湖人称"愚公搬代码",用七年如一日的精神深耕技术领域,以"挖山不止"的毅力为开发者们搬开知识道路上的重重阻碍!💎【行业认证·权威头衔】✔ 华为云天团核心成员:特约编辑/云享专家/开发者专家/产品云测专家✔ 开发者社区...

🌟【技术大咖愚公搬代码:全栈专家的成长之路,你关注的宝藏博主在这里!】🌟

📣开发者圈持续输出高质量干货的"愚公精神"践行者——全网百万开发者都在追更的顶级技术博主!

👉 江湖人称"愚公搬代码",用七年如一日的精神深耕技术领域,以"挖山不止"的毅力为开发者们搬开知识道路上的重重阻碍!

💎【行业认证·权威头衔】
✔ 华为云天团核心成员:特约编辑/云享专家/开发者专家/产品云测专家
✔ 开发者社区全满贯:CSDN博客&商业化双料专家/阿里云签约作者/腾讯云内容共创官/掘金&亚马逊&51CTO顶级博主
✔ 技术生态共建先锋:横跨鸿蒙、云计算、AI等前沿领域的技术布道者

🏆【荣誉殿堂】
🎖 连续三年蝉联"华为云十佳博主"(2022-2024)
🎖 双冠加冕CSDN"年度博客之星TOP2"(2022&2023)
🎖 十余个技术社区年度杰出贡献奖得主

📚【知识宝库】
覆盖全栈技术矩阵:
◾ 编程语言:.NET/Java/Python/Go/Node…
◾ 移动生态:HarmonyOS/iOS/Android/小程序
◾ 前沿领域:物联网/网络安全/大数据/AI/元宇宙
◾ 游戏开发:Unity3D引擎深度解析
每日更新硬核教程+实战案例,助你打通技术任督二脉!

💌【特别邀请】
正在构建技术人脉圈的你:
👍 如果这篇推文让你收获满满,点击"在看"传递技术火炬
💬 在评论区留下你最想学习的技术方向
⭐ 点击"收藏"建立你的私人知识库
🔔 关注公众号获取独家技术内参
✨与其仰望大神,不如成为大神!关注"愚公搬代码",让坚持的力量带你穿越技术迷雾,见证从量变到质变的奇迹!✨ |

🚀前言

在之前的文章中,我们已经完成了 电商数据侦探 项目的需求分析、系统设计和主窗体UI的设计。今天,我们将进一步深入,探讨 设计数据库表结构,为我们的项目奠定更加坚实的基础。

数据库设计是任何一个项目中至关重要的一环,尤其是在需要处理大量数据的电商数据爬取项目中,合理的数据库表结构可以有效提高数据存取效率、保证数据的完整性与一致性,并确保项目在实际运行中的高效性。在本篇文章中,我们将着重讨论如何根据 电商数据侦探 项目的具体需求,设计合适的数据库表结构,确保后续数据的高效存储与管理。

在本篇文章中,我们将涉及以下几个关键点:

  1. 数据库设计基础:介绍如何根据项目需求分析来设计数据库表结构,考虑数据存储的高效性和扩展性。
  2. 设计商品数据表:根据抓取到的电商平台商品数据,设计商品表的结构,包括商品名称、价格、描述、评分等字段。
  3. 设计用户评价数据表:针对用户评价数据,设计评价表结构,确保能够存储评论、评分、评论时间等信息,并与商品数据表关联。
  4. 设计价格历史数据表:电商平台的商品价格会随时间波动,我们将设计一个价格历史表,用来记录商品的价格变化。
  5. 数据完整性与关联性:讲解如何通过表与表之间的关联,确保数据的一致性,并避免冗余数据的产生。
  6. 优化与扩展性设计:考虑到数据量的逐渐增大,我们还将讨论如何设计表结构以支持数据的扩展,保证系统的高效性。

通过本篇文章的学习,你将掌握如何为 电商数据侦探 项目设计合理且高效的数据库表结构,并为后续的数据存储与查询提供坚实基础。数据库设计虽然是系统开发中的后端工作,但它对整个项目的影响是深远的,因此,掌握良好的数据库设计技巧将大大提高你项目开发的效率与质量。

🚀一、数据库表结构设计

🔎1.数据库与表说明

  • 数据库名称:id_peripheral
  • 核心表:
    1. 热卖排行榜表(id_ranking):存储热卖商品基础信息
    2. 关注商品表(attention):存储用户关注的商品及预警相关数据

🔎2.表结构设计

🦋2.1 热卖排行榜表 id_ranking

字段名 数据类型 约束/说明 描述
id INT PRIMARY KEY, AUTO_INCREMENT 主键(自增ID)
name VARCHAR(255) NOT NULL 商品名称
jd_price VARCHAR(25) NOT NULL 商品价格
jd_id VARCHAR(25) NOT NULL 商品唯一ID(京东)
good VARCHAR(25) NOT NULL 商品好评率

image.png

🦋2.2 关注商品表 attention

字段名 数据类型 约束/说明 描述
id INT PRIMARY KEY, AUTO_INCREMENT 主键(自增ID)
name VARCHAR(255) NOT NULL 商品名称
jd_price VARCHAR(25) NOT NULL 关注时价格(需监控)
jd_id VARCHAR(25) NOT NULL 商品唯一ID(来源平台)
good VARCHAR(25) NOT NULL 好评率
middle_time VARCHAR(45) NOT NULL 最新中评时间
poor_time VARCHAR(45) NOT NULL 最新差评时间

image.png

🔎3. 数据库脚本

-- 创建数据库
CREATE DATABASE IF NOT EXISTS `id_peripheral` 
DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

-- 切换到目标数据库
USE `id_peripheral`;

-- 创建热卖排行榜表
CREATE TABLE IF NOT EXISTS `id_ranking` (
  `id` INT AUTO_INCREMENT COMMENT '自增主键',
  `name` VARCHAR(255) NOT NULL COMMENT '商品名称',
  `jd_price` VARCHAR(25)  NOT NULL COMMENT '商品价格',
  `jd_id` VARCHAR(25)  NOT NULL COMMENT '商品唯一ID(如京东ID)',
  `good` VARCHAR(25)   NOT NULL COMMENT '好评率',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='热卖商品排行榜数据';

-- 创建关注商品表
CREATE TABLE IF NOT EXISTS `attention` (
  `id` INT AUTO_INCREMENT COMMENT '自增主键',
  `name` VARCHAR(255) NOT NULL COMMENT '商品名称',
  `id_price` VARCHAR(25) NOT NULL COMMENT '关注时价格',
  `id_id` VARCHAR(25) NOT NULL COMMENT '商品唯一ID',
  `good` VARCHAR(25) NOT NULL COMMENT '好评率',
  `middle_time` VARCHAR(45) NOT NULL COMMENT '最新中评时间',
  `poor_time` VARCHAR(45) NOT NULL COMMENT '最新差评时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户关注商品及预警信息';

🔎4.关键设计说明

  1. 字段一致性:

    • id_ranking 表与 attention 表共享部分字段(如 name, good),便于数据关联。
    • id_rankingjd_idattentionid_id 表示同一商品在不同平台的唯一标识,可根据实际数据源调整字段名。
  2. 预警功能支持:

    • attention 表中 middle_timepoor_time 用于记录中差评时间,触发预警逻辑。
    • id_price 字段用于监控价格波动(需通过程序定期比对最新价格)。
  3. 扩展性:

    • 可添加外键约束(如 attention.id_id 关联 id_ranking.jd_id),确保数据一致性。
    • 可扩展其他字段(如 update_time 记录数据更新时间)。

🔎5.示例数据插入

-- 插入热卖商品示例
INSERT INTO `id_ranking` (`name`, `jd_price`, `jd_id`, `good`) 
VALUES 
  ('机械键盘', 299.00, 'JD123456', 98.50),
  ('游戏鼠标', 159.00, 'JD789012', 97.80);

-- 插入关注商品示例
INSERT INTO `attention` (`name`, `id_price`, `id_id`, `good`) 
VALUES 
  ('机械键盘', 299.00, 'JD123456', 98.50),
  ('无线耳机', 499.00, 'JD345678', 95.00);
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。