当前位置: 首页 > news >正文

网站推送庆阳网站设计价格

网站推送,庆阳网站设计价格,网站推广优化外链,网页设计与制作实用教程(第3版)目录1. 引言1.1 文档目的1.2 范围2. 系统架构设计2.1 技术选型2.2 系统架构图3. 数据库设计3.1 核心实体关系 (E-R) 图3.2 完整数据表结构3.2.1 用户与权限模块 (User & Permissions)3.2.2 机构与内容模块 (Institution & Content)3.2.3 课程与商城模块 (Courses &…

目录

  • 1. 引言
    • 1.1 文档目的
    • 1.2 范围
  • 2. 系统架构设计
    • 2.1 技术选型
    • 2.2 系统架构图
  • 3. 数据库设计
    • 3.1 核心实体关系 (E-R) 图
    • 3.2 完整数据表结构
      • 3.2.1 用户与权限模块 (User & Permissions)
      • 3.2.2 机构与内容模块 (Institution & Content)
      • 3.2.3 课程与商城模块 (Courses & Products)
      • 3.2.4 教学与互动模块 (Teaching & Interaction)
      • 3.2.5 订单与资产模块 (Orders & Assets)
  • 4. 模块化功能详细设计
    • 通用设计
    • 4.1 首页模块 (FE-001 \~ FE-005)
    • 4.2 商城模块 (FE-006 \~ FE-007)
    • 4.3 服务模块 (FE-008 \~ FE-010)
    • 4.4 我的模块 (FE-011 \~ FE-013)
  • 5. 非功能需求设计
  • 6. 后台管理系统设计

1. 引言

1.1 文档目的

本技术设计文档(TDD)基于《少儿舞蹈小程序项目需求文档 V1.0》,旨在提供一个全面的技术实现蓝图。本文档详细阐述了系统架构、完整的数据库结构、核心功能模块的接口设计和前后端交互逻辑,作为开发、测试和后续维护工作的核心技术依据。

1.2 范围

本文档覆盖了小程序前端(用户端)和后台管理系统(管理端)的所有功能模块,以及相关的非功能性需求实现方案。


2. 系统架构设计

2.1 技术选型

  • 小程序端 (Frontend):

    • 框架: 使用腾讯云开发作为前端页面搭建平台
  • 后台服务端 (Backend):

    • 语言/框架: Node.js 。
    • 数据库: MySQL 8.0 ,作为主业务数据库。
    • 对象存储: 腾讯云COS,用于存储图片、视频等静态资源。
  • 后台管理系统 (Admin Panel):

    • 框架: 使用腾讯云开发作为后端系统搭建平台。

2.2 系统架构图

在这里插入图片描述

架构说明:
采用模块化的后端架构,将业务逻辑拆分为独立的服务模块(如用户、课程、订单等),便于独立开发、部署和扩展。API网关统一处理请求路由、认证和限流。


3. 数据库设计

3.1 核心实体关系 (E-R) 图

在这里插入图片描述

3.2 完整数据表结构

3.2.1 用户与权限模块 (User & Permissions)

  • 用户表 (users)

    字段名数据类型主键/索引描述
    idBIGINTPK唯一标识符
    wechat_openidVARCHAR(128)UK微信用户唯一标识 (小程序)
    wechat_unionidVARCHAR(128)IDX微信开放平台唯一标识 (可选)
    nicknameVARCHAR(255)用户昵称
    avatar_urlVARCHAR(512)用户头像URL
    phone_numberVARCHAR(20)IDX用户手机号
    created_atDATETIME创建时间
    updated_atDATETIME更新时间
  • 学员表 (students)

    字段名数据类型主键/索引描述
    idBIGINTPK唯一标识符
    user_idBIGINTFK关联的家长用户ID (users.id)
    nameVARCHAR(100)学员姓名
    genderTINYINT性别 (0: 未知, 1: 男, 2: 女)
    birthdayDATE出生日期
    statusTINYINT状态 (1: 正常, 0: 禁用)
    created_atDATETIME创建时间
    updated_atDATETIME更新时间
  • 后台管理员表 (admin_users)

    字段名数据类型主键/索引描述
    idBIGINTPK唯一标识符
    usernameVARCHAR(100)UK登录用户名
    password_hashVARCHAR(255)加密后的密码
    nameVARCHAR(100)真实姓名或昵称
    role_idBIGINTFK角色ID (roles.id)
    statusTINYINT状态 (1: 启用, 0: 禁用)
    last_login_atDATETIME最后登录时间
    created_atDATETIME创建时间
    updated_atDATETIME更新时间
  • 角色表 (roles)

    字段名数据类型主键/索引描述
    idBIGINTPK唯一标识符
    nameVARCHAR(100)UK角色名称
    descriptionVARCHAR(255)角色描述
    created_atDATETIME创建时间
    updated_atDATETIME更新时间

3.2.2 机构与内容模块 (Institution & Content)

  • 轮播图表 (banners)

    字段名数据类型主键/索引描述
    idBIGINTPK唯一标识符
    titleVARCHAR(255)标题
    image_urlVARCHAR(512)图片URL
    link_urlVARCHAR(512)跳转链接 (小程序内页面路径)
    sort_orderINT排序值,值越小越靠前
    statusTINYINT状态 (1: 显示, 0: 隐藏)
    created_atDATETIME创建时间
  • 文章/介绍表 (articles)

    字段名数据类型主键/索引描述
    idBIGINTPK唯一标识符
    typeVARCHAR(50)IDX类型 (e.g., ‘INTRODUCTION’, ‘HONOR’)
    titleVARCHAR(255)标题
    contentLONGTEXT富文本内容
    statusTINYINT状态 (1: 发布, 0: 草稿)
    created_atDATETIME创建时间
  • 校区表 (campuses)

    字段名数据类型主键/索引描述
    idBIGINTPK唯一标识符
    nameVARCHAR(255)校区名称
    addressVARCHAR(512)详细地址
    phoneVARCHAR(20)联系电话
    latitudeDECIMAL(10, 7)纬度
    longitudeDECIMAL(10, 7)经度
    cover_image_urlVARCHAR(512)封面图
    created_atDATETIME创建时间
  • 教师表 (teachers)

    字段名数据类型主键/索引描述
    idBIGINTPK唯一标识符
    admin_idBIGINTUK, FK关联后台用户ID (可选)
    nameVARCHAR(100)教师姓名
    avatar_urlVARCHAR(512)教师头像
    bioTEXT教师简介
    statusTINYINT状态 (1: 在职, 0: 离职)
    created_atDATETIME创建时间

3.2.3 课程与商城模块 (Courses & Products)

  • 商品表 (products)

    字段名数据类型主键/索引描述
    idBIGINTPK唯一标识符
    typeVARCHAR(20)IDX类型 (‘COURSE’, ‘GOODS’, ‘PACKAGE’)
    nameVARCHAR(255)商品/课程名称
    descriptionTEXT详细描述
    cover_image_urlVARCHAR(512)封面图
    priceDECIMAL(10, 2)售价
    original_priceDECIMAL(10, 2)原价/划线价
    statusTINYINT状态 (1: 上架, 0: 下架)
    stock_quantityINT库存数量 (-1表示无限)
    created_atDATETIME创建时间
  • 班级/课时表 (classes)

    字段名数据类型主键/索引描述
    idBIGINTPK唯一标识符
    product_idBIGINTFK关联的课程ID (products.id)
    teacher_idBIGINTFK授课教师ID (teachers.id)
    campus_idBIGINTFK上课校区ID (campuses.id)
    nameVARCHAR(255)班级名称 (如:周六上午启蒙班)
    start_timeDATETIMEIDX上课开始时间
    end_timeDATETIME上课结束时间
    capacityINT班级容量
    enrolled_countINT已报名人数 (冗余字段,需同步)
    created_atDATETIME创建时间
  • 学员报名表 (student_enrollments)

    字段名数据类型主键/索引描述
    idBIGINTPK唯一标识符
    student_idBIGINTFK, IDX学员ID (students.id)
    product_idBIGINTFK报名的课程/套餐ID (products.id)
    order_idBIGINTFK关联的订单ID (orders.id)
    contract_idBIGINTFK关联的合同ID (contracts.id) (可选)
    statusTINYINT状态 (1: 在读, 2: 已结课, 0: 已退费)
    start_dateDATE课程开始日期
    end_dateDATE课程结束日期
    created_atDATETIME创建时间

3.2.4 教学与互动模块 (Teaching & Interaction)

  • 作业发布表 (homework_assignments)

    字段名数据类型主键/索引描述
    idBIGINTPK唯一标识符
    class_idBIGINTFK关联的班级ID (classes.id)
    teacher_idBIGINTFK发布教师ID (teachers.id)
    titleVARCHAR(255)作业标题
    contentTEXT作业内容
    due_dateDATETIME截止日期
    created_atDATETIME发布时间
  • 作业提交表 (homework_submissions)

    字段名数据类型主键/索引描述
    idBIGINTPK唯一标识符
    assignment_idBIGINTFK作业ID (homework_assignments.id)
    student_idBIGINTFK提交学员ID (students.id)
    contentTEXT文本内容
    attachmentsJSON附件列表 (图片/视频URL)
    statusTINYINT状态 (1: 已提交, 2: 已批改)
    gradeVARCHAR(50)评分 (如: A+, 优秀)
    teacher_commentTEXT教师评语
    submitted_atDATETIME提交时间
  • 考勤记录表 (attendance_records)

    字段名数据类型主键/索引描述
    idBIGINTPK唯一标识符
    class_idBIGINTFK班级/课时ID (classes.id)
    student_idBIGINTFK, IDX学员ID (students.id)
    check_in_timeDATETIME签到时间
    statusTINYINT状态 (1:出勤, 2:迟到, 3:请假, 4:缺勤)
    notesVARCHAR(512)备注
  • 学员请假表 (leave_requests)

    字段名数据类型主键/索引描述
    idBIGINTPK唯一标识符
    student_idBIGINTFK学员ID (students.id)
    class_idBIGINTFK申请的课程ID (classes.id)
    reasonTEXT请假事由
    statusTINYINT状态 (0:待审批, 1:已批准, 2:已驳回)
    approved_byBIGINTFK审批人ID (admin_users.id)
    created_atDATETIME申请时间
  • 学员作品集 (student_portfolio)

    字段名数据类型主键/索引描述
    idBIGINTPK唯一标识符
    student_idBIGINTFK学员ID (students.id)
    titleVARCHAR(255)作品标题
    media_urlVARCHAR(512)媒体文件URL
    media_typeVARCHAR(20)类型 (‘IMAGE’, ‘VIDEO’)
    created_atDATETIME上传时间
  • 预约试听表 (trial_requests)

    字段名数据类型主键/索引描述
    idBIGINTPK唯一标识符
    student_nameVARCHAR(100)学员姓名
    contact_phoneVARCHAR(20)IDX联系电话
    student_ageINT学员年龄
    statusTINYINT状态 (0:待处理, 1:已联系, 2:已完成)
    notesTEXT管理员备注
    created_atDATETIME预约时间

3.2.5 订单与资产模块 (Orders & Assets)

  • 订单表 (orders)

    字段名数据类型主键/索引描述
    idBIGINTPK唯一标识符
    order_snVARCHAR(64)UK业务订单号
    user_idBIGINTFK下单用户ID (users.id)
    total_amountDECIMAL(10, 2)订单总金额
    coupon_amountDECIMAL(10, 2)优惠券抵扣金额
    pay_amountDECIMAL(10, 2)实际支付金额
    statusTINYINTIDX状态 (0:待支付, 1:已支付, 2:已取消)
    payment_timeDATETIME支付时间
    transaction_idVARCHAR(128)微信支付交易号
    created_atDATETIME创建时间
  • 订单明细表 (order_items)

    字段名数据类型主键/索引描述
    idBIGINTPK唯一标识符
    order_idBIGINTFK订单ID (orders.id)
    product_idBIGINTFK商品ID (products.id)
    product_nameVARCHAR(255)商品名称 (快照)
    priceDECIMAL(10, 2)单价 (快照)
    quantityINT数量
  • 优惠券模板表 (coupon_templates)

    字段名数据类型主键/索引描述
    idBIGINTPK唯一标识符
    nameVARCHAR(255)优惠券名称
    typeTINYINT类型 (1:满减, 2:折扣)
    valueDECIMAL(10, 2)面值或折扣率
    min_spendDECIMAL(10, 2)最低消费门槛
    valid_fromDATE有效期开始
    valid_toDATE有效期结束
    total_quantityINT总发行量
    issued_quantityINT已领取数量
  • 用户优惠券表 (user_coupons)

    字段名数据类型主键/索引描述
    idBIGINTPK唯一标识符
    user_idBIGINTFK用户ID (users.id)
    template_idBIGINTFK优惠券模板ID (coupon_templates.id)
    statusTINYINT状态 (0:未使用, 1:已使用, 2:已过期)
    used_atDATETIME使用时间
    order_idBIGINTFK使用的订单ID (orders.id)
    created_atDATETIME领取时间
  • 合同表 (contracts)

    字段名数据类型主键/索引描述
    idBIGINTPK唯一标识符
    contract_snVARCHAR(64)UK合同编号
    user_idBIGINTFK签署用户ID (users.id)
    student_idBIGINTFK关学员ID (students.id)
    titleVARCHAR(255)合同标题
    contentLONGTEXT合同内容 (HTML或Markdown)
    signed_atDATETIME签署时间
    created_atDATETIME创建时间

4. 模块化功能详细设计

通用设计

  • 用户认证:
    • 登录流程: 采用低代码平台自带的登录认证方式。

4.1 首页模块 (FE-001 ~ FE-005)

  • 接口:
    • GET /api/v1/home/banners: 获取轮播图列表。
    • GET /api/v1/home/summary: 聚合获取首页所需内容(机构介绍、师资、作品、校区等)。
    • POST /api/v1/trial/apply: 提交预约试听表单。
  • 后端逻辑: 主要为数据查询,查询 banners, articles, teachers, campuses 等表。预约试听则是在 trial_requests 表中插入新记录。

4.2 商城模块 (FE-006 ~ FE-007)

  • 接口:
    • GET /api/v1/products: 根据类型、关键词分页获取商品列表。
    • POST /api/v1/cart/add: 添加商品到购物车(逻辑在Redis或数据库中实现)。
    • POST /api/v1/orders: 创建订单,写入ordersorder_items表,并调用微信支付API生成预支付订单。
    • POST /api/v1/payment/notify: 接收微信支付回调,更新orders表状态。
  • 后端逻辑: 涉及 products 表的查询,以及 orders, order_items 表的事务性写入。

4.3 服务模块 (FE-008 ~ FE-010)

  • 接口:
    • GET /api/v1/students/{student_id}/schedule?month=YYYY-MM: 获取学员月度课表。
    • GET /api/v1/students/{student_id}/enrollments?status=1: 获取学员报读课程。
    • POST /api/v1/homework/submit: 提交作业。
    • POST /api/v1/leave/apply: 提交请假申请。
  • 后端逻辑: 课表查询需要联结 student_enrollmentsclasses 表。提交作业涉及文件上传至OSS,并在 homework_submissions 表记录信息。

4.4 我的模块 (FE-011 ~ FE-013)

  • 接口:
    • GET /api/v1/user/profile: 获取当前用户信息及其管理的学员列表。
    • GET /api/v1/user/coupons: 获取我的优惠券。
    • GET /api/v1/user/contracts: 获取我的合同。
  • 后端逻辑: 主要根据用户ID查询 users, students, user_coupons, contracts 等关联表。

5. 非功能需求设计

  • 5.1 性能要求
    • 页面加载: 小程序分包加载,图片CDN,骨架屏。数据库查询建立合理索引。
    • 并发支持: 采用套餐的默认并发支持
  • 5.2 可用性
    • UI/UX: 遵循微信官方设计指南,交互流程扁平化。
    • 兼容性: 使用微信开发者工具的多设备模拟器测试,发布前在主流iOS和Android真机上进行测试。
  • 5.3 安全性
    • 数据传输: 全站强制使用HTTPS。
    • 用户认证: 采用平台自带的登录验证机制,设置合理的过期时间。
    • 数据安全: 后端对所有用户输入进行严格校验,防止SQL注入。敏感信息加密存储。
  • 5.4 可扩展性
    • 架构: 后端模块化设计,新功能可作为新服务独立开发。
    • 接口设计: 遵循RESTful风格,接口进行版本管理(如 /api/v1/)。

6. 后台管理系统设计

后台管理系统通过调用为管理员设计的API来操作数据,并基于角色进行权限控制。

  • 6.1 内容管理: 提供对 banners, articles, campuses, teachers 等表的CRUD操作界面。
  • 6.2 课程与学员管理:
    • 课程: 管理 products 表,并为课程类型的商品提供排课功能,操作 classes 表。
    • 学员: 管理 students 表,并能为其创建 student_enrollments 记录(后台报名)。
    • 作业: 教师角色可创建 homework_assignments,并查看和批改 homework_submissions
  • 6.3 订单与数据统计: 查看 orders 列表。提供数据看板,通过聚合查询分析用户、销售、出勤等关键数据。
http://www.dtcms.com/a/547212.html

相关文章:

  • 装修平台网站制作wordpress能放几个域名
  • 企业网站推广总结上海市建设工程交易平台
  • 网站建设平台 汉龙成都建站免费模板
  • 配资网站建设多少钱做任务赚佣金网站有哪些
  • 儿童网站 源码课程网站建设论文
  • wordpress首页模板制作seo神马网站推广器
  • 半监督学习,少样本学习和零样本学习
  • 游戏网站app营销型企业网站的含义
  • nestjs中集成swagger文档
  • 国外设计网站排名企业信用公示信息系统(全国)官网
  • 南充市建设局网站网络公司经营范围许可
  • dede装修网站模板公司网站建设维护合同
  • 个人网站搭建wordpress手机怎么打开禁止访问的网站
  • asp框架商城网站模板中国网通
  • 青岛建站企业网站模板2016成套
  • 广州营销型网站建设公司哪家名气大展馆展示设计公司哪家好
  • 网站发展阶段怎么做app开发外包网
  • 电子商务网站建设考题国内自助建站平台有哪些
  • 网站做的最好的网站有哪些银川网站设计公司
  • 比较好网站设计公司女性时尚网站带论坛php程序
  • 网站到期续费吗现在做个网站大概多少钱
  • 公司的网站建设是什么部门国外永久免费云服务器
  • 手机型网站余姚市建设局网站
  • 企业网站服务门户如何做一个企业的网站
  • 郑州网站开发公su域名注册
  • 快递建站收费标准免费的那种软件
  • 写方案的网站关wordpress更新
  • 申请号的网站懒人手机网站模板
  • 商务网站设计网站模板 帝国 phpcms
  • kuake自助建站系统官网好的网站设计模板