电商购物商城项目商品表结构介绍

简介: 电商购物商城项目商品表结构介绍

电商购物商城项目商品表结构

电商的商品表结构是很复杂的 , 博主目前使用的这个模版涉及到的表就是十多个 , 其实还并不完善 , 但也基本可以实现所有功能了

首先我们来看一张图这张图涵盖了基本的表关系 , 乍一看很复杂 , 其实细分下来可以分为好几个模块

广告数据表

  1. 在左上角的两张表是单独设置的和其他表并没有关系 , 在电商项目中我们一般称这两张表为广告数据表 , 干啥的呢?其实很很简单就是 , 存放网站主页显示的数据
  2. tb_content 这张表也就是广告内容
  3. tb_content_category 这张表就是广告内容对应的种类 , 如轮播图 , 标签图等等

商品数据表

剩下的那一大坨就是商品数据表了

1. 商品类别与商品频道

这部分是有三张表构成的他们之间的关联性较大 , 就拿出来先单独介绍

顾名思义这三张表的作用就是实现对商品的一个分类

可以看到这里是一个三级的关系 , 我们只需要在商品类别这张表中设置一个自关联的字段就能实现三级数据之间的关联 , 如果不清楚什么是自关联的小伙伴 , 可以去看看博主的专栏 , 在专栏中有介绍

那么为什么有三张标呢 , 其中一张tb_goods_category也就是刚刚介绍的用来放置所有类别 , 还有一张是对类别的分类tb_channel_group , 最后的话就是作为外键绑定这两张表 , 实现表与表之间的互通

下面是使用Django的ORM框架写的代码 , 可以参考一下 , 剩下的几张表在下一期再进行介绍

class GoodsCategory(BaseModel):
    """商品类别"""
    name = models.CharField(max_length=10, verbose_name='名称')
    parent = models.ForeignKey('self', related_name='subs', null=True, blank=True, on_delete=models.CASCADE, verbose_name='父类别')
    class Meta:
        db_table = 'tb_goods_category'
        verbose_name = '商品类别'
        verbose_name_plural = verbose_name
    def __str__(self):
        return self.name
class GoodsChannelGroup(BaseModel):
    """商品频道组"""
    name = models.CharField(max_length=20, verbose_name='频道组名')
    class Meta:
        db_table = 'tb_channel_group'
        verbose_name = '商品频道组'
        verbose_name_plural = verbose_name
    def __str__(self):
        return self.name
class GoodsChannel(BaseModel):
    """商品频道"""
    group = models.ForeignKey(GoodsChannelGroup, verbose_name='频道组名', on_delete=models.CASCADE)
    category = models.ForeignKey(GoodsCategory, on_delete=models.CASCADE, verbose_name='顶级商品类别')
    url = models.CharField(max_length=50, verbose_name='频道页面链接')
    sequence = models.IntegerField(verbose_name='组内顺序')
    class Meta:
        db_table = 'tb_goods_channel'
        verbose_name = '商品频道'
        verbose_name_plural = verbose_name
    def __str__(self):
        return self.category.name


相关文章
|
算法 异构计算
基于FPGA的ECG信号滤波与心率计算verilog实现,包含testbench
基于FPGA的ECG信号滤波与心率计算verilog实现,包含testbench
|
消息中间件 安全 Unix
SSH配置多台服务器之间的免密登陆以及登陆别名
SSH配置多台服务器之间的免密登陆以及登陆别名
758 1
|
传感器 数据采集 算法
【软件设计师备考 专题 】系统可靠性分析评价
【软件设计师备考 专题 】系统可靠性分析评价
866 0
|
7月前
|
消息中间件 存储 Java
RabbitMQ 和 Spring Cloud Stream 实现异步通信
本文介绍了在微服务架构中,如何利用 RabbitMQ 作为消息代理,并结合 Spring Cloud Stream 实现高效的异步通信。内容涵盖异步通信的优势、RabbitMQ 的核心概念与特性、Spring Cloud Stream 的功能及其与 RabbitMQ 的集成方式。通过这种组合,开发者可以构建出具备高可用性、可扩展性和弹性的分布式系统,满足现代应用对快速响应和可靠消息传递的需求。
420 2
RabbitMQ 和 Spring Cloud Stream 实现异步通信
|
9月前
|
存储 前端开发 应用服务中间件
Django 实战:静态文件与媒体文件从开发配置到生产部署
Django项目中,静态文件(Static Files)和媒体文件(Media Files)是两类不同用途的文件。本文详细介绍了它们的区别、配置方法以及在开发与生产环境中的处理方式,并结合用户头像上传功能进行实战演示,最后讲解了如何通过Nginx或OpenResty部署静态与媒体文件服务。
467 1
|
机器学习/深度学习 数据采集 数据可视化
使用Python实现深度学习模型:智能垃圾分类与回收系统
【8月更文挑战第20天】 使用Python实现深度学习模型:智能垃圾分类与回收系统
848 1
|
前端开发 UED 容器
前端技术分享:利用 CSS Grid 实现响应式布局
【10月更文挑战第1天】前端技术分享:利用 CSS Grid 实现响应式布局
466 3
|
定位技术
Cesium修改地球的贴图为视频或者图片
这篇文章说明了如何在Cesium中修改地球的贴图,替换为自定义的图像或视频纹理。
689 1
Cesium修改地球的贴图为视频或者图片
|
SQL 存储 分布式计算
阿里云 Paimon + MaxCompute 极速体验
Paimon 和 MaxCompute 的对接经历了长期优化,解决了以往性能不足的问题。通过半年紧密合作,双方团队专门提升了 Paimon 在 MaxCompute 上的读写性能。主要改进包括:采用 Arrow 接口减少数据转换开销,内置 Paimon SDK 提升启动速度,实现原生读写能力,减少中间拷贝与转换,显著降低 CPU 开销与延迟。经过双十一实战验证,Paimon 表的读写速度已接近 MaxCompute 内表,远超传统外表。欢迎体验!
|
SQL 关系型数据库 数据库
Python执行PostgreSQL数据库查询语句,并打印查询结果
本文介绍了如何使用Python连接和查询PostgreSQL数据库。首先,确保安装了`psycopg2`库,然后创建数据库连接函数。接着,展示如何编写SQL查询并执行,例如从`employees`表中选取所有记录。此外,还讨论了处理查询结果、格式化输出和异常处理的方法。最后,提到了参数化查询和事务处理以增强安全性及确保数据一致性。
Python执行PostgreSQL数据库查询语句,并打印查询结果