资讯动态

certificate-photo 云数据库设计解析:9大集合的字段规划与photo_size种子数据导入

发布时间:2026/8/21 18:41:10 来源:尧图企业网站定制
certificate-photo 云数据库设计解析9大集合的字段规划与photo_size种子数据导入【免费下载链接】certificate-photo一个生成证件照的小程序微信云原生开发小程序。 只fork不star是很没品的。项目地址: https://gitcode.com/gh_mirrors/ce/certificate-photo微信云开发是证书照片类小程序的常见底座而certificate-photo这个开源证件照小程序恰恰把云数据库的用法发挥得相当典型28 个云函数、9 个数据库集合协同工作支撑起从选尺寸、AI 抠图、换背景到下载成片的完整链路。本文将从零解析它的云数据库设计带你逐一看懂 9 大集合的字段规划并重点讲解photo_size 种子数据导入的全过程帮你快速上手这套免费证件照项目的部署与二次开发。一、为什么云数据库设计是小程序的核心地基证件照小程序看似简单实则业务链路很长用户注册、次数管理、尺寸选择、素材加载、邀请裂变、订阅消息、临时文件清理……这些状态如果全塞在本地缓存里用户换个手机就全丢了。certificate-photo的做法是把一切需要跨端、跨云函数共享的数据全部下沉到微信云开发数据库前端页面通过wx.cloud.database()直连读取云函数通过wx-server-sdk写入。整个项目的集合清单和职责边界在项目文档AGENT.md的「云数据库集合」章节中有完整记录部署新环境时照着它创建集合即可。二、9大集合全景一览先给出全局地图方便你建立整体认知集合名核心职责关键字段user用户信息与次数openid、count、vipCount、signInDate、accumCreatePhotophoto_size证件照尺寸目录category_id、name、width_px、height_px、width_mm、height_mmresource-images换装/换发型素材type、tag、图片 URLshare邀请裂变记录openid、invitedListsubscrib-message订阅消息记录tmplId等tmp-file临时云文件登记time、fileIDglobal-config全局配置背景图索引等bg-images背景图库imgurl、create_timeimages共享图片生态imgurl、category、type提示AGENT.md明确要求新环境部署时必须手动创建集合并导入photo_size、resource-images两份种子数据否则尺寸列表和换装素材会是一片空白。三、核心集合字段规划详解1.user次数与签到的主战场user集合是业务命脉由addUser云函数cloudfunctions/addUser/index.js负责新用户入库首次进入写入openid、count: 1赠送一次、accumCreatePhoto: 0、signInDate: 。次数增减统一走useCount云函数cloudfunctions/useCount/index.js巧妙利用数据库指令_.inc()原子增减count普通可用次数生成照片时 -1签到时 1accumCreatePhoto累计生成数只增不减signInDate签到日期按东八区日期字符串更新邀请关系则通过shareUpdate写入parentOpenid形成上下级链。2.photo_size证件照尺寸目录的字段设计这是本文重点。photo_size集合的字段设计非常精炼字段含义示例category_id所属分类1、2、3、4name尺寸名称一寸、二寸、结婚证width_px/height_px像素宽高295 / 413width_mm/height_mm毫米宽高25 / 35前端pages/searchSize/searchSize.js通过db.collection(photo_size).where({ category_id })分页拉取每页 20 条触底加载再跳转到预编辑页。3.resource-images换装与换发型素材getClothes与getHairs云函数按typeclothes/hair加tagnan男、nv女、other其他双重条件过滤返回的图片 URL 直接渲染到编辑器的素材网格里。4.share与subscrib-message裂变与触达shareshareUpdate用_.addToSet()把被邀请人 openid 追加进invitedList实现邀请去重subscrib-messagesubscribeEvent、triggerSubscrib写入并投递订阅消息配合定时云函数做签到提醒5.tmp-file临时文件的定时清理机制百度抠图baiduKoutu、图片合成imageCompose、压缩imagemin、排版printStyle都会把中间产物登记进tmp-file字段timefileID。定时云函数timingDelete每 30 分钟扫描一次删除超过 1 小时的临时文件避免云存储账单失控——这是新手最容易忽略的省钱设计。6.global-config、bg-images、images配置与内容生态global-config存放背景轮换索引等全局状态由timingUpdateBgListIndex、updateImageCount维护bg-images今日背景图timingGetImage每天定时拉取外部壁纸 API 写入imgurlimages与「人像抠图」等其他小程序共享的图片生态记录category风景/美女与type实现跨项目复用四、photo_size 种子数据导入完整流程第 1 步确认数据来源项目内置了15 个常用尺寸的参考数据就写在miniprogram/app.js的globalData.photoSizeList里一寸、小一寸、大一寸、二寸、小二寸、大二寸、三寸、四寸、五寸、简历、健康证、结婚证、一寸半身照、二寸半身照、教师资格证每个条目都包含名称、像素、毫米规格和用途说明如「教师资格证、简历、会计职称考试、健康证等」。第 2 步按字段结构组织 JSON在云开发控制台新建photo_size集合后把上述数据整理成符合字段设计的 JSON 文档例如一寸{ category_id: 1, name: 一寸, width_px: 295, height_px: 413, width_mm: 25, height_mm: 35 }二寸{ category_id: 2, name: 二寸, width_px: 413, height_px: 579, width_mm: 35, height_mm: 49 }结婚证{ category_id: 3, name: 结婚证, width_px: 626, height_px: 413, width_mm: 53, height_mm: 35 }第 3 步控制台导入云开发控制台 → 数据库 →photo_size集合 → 导入 → 选择 JSON 文件。导入后到「尺寸库」页面切换分类 Tab 验证数据是否按category_id正确分组展示。第 4 步resource-images素材导入同理创建resource-images集合素材文档需带type与tag字段并确保图片 URL 使用的是你当前云环境的 fileID否则换环境后硬编码链接会失效这是AGENT.md特别标注的坑。五、部署与二次开发的 3 个实用提醒换环境必须全局替换云环境 IDminiprogram/app.js中wx.cloud.init({ resourceEnv: dev-4iov0 })及多处硬编码cloud://URL 都要改成你自己的环境。已知数据 Bugapp.js中三寸、四寸、五寸的宽高错误复制了大二寸的413×626与像素标注不符导入种子数据时可顺手修正三寸应为 649×991。字段拼写保持原样项目沿用了discription非 description等拼写二次开发时保持一致性避免改一处坏一处。六、总结certificate-photo的云数据库设计思路很值得借鉴用 9 个职责单一的集合把用户、尺寸、素材、邀请、消息、临时文件、内容生态彻底解耦配合定时云函数把数据生命周期管理得井井有条。对新手而言照着AGENT.md的集合清单建库、导入photo_size种子数据再按「云函数清单」逐个部署就能跑通完整的证件照生成流程。希望这篇解析能帮你快速掌握微信云开发数据库的设计与部署技巧少踩几个隐蔽的坑。【免费下载链接】certificate-photo一个生成证件照的小程序微信云原生开发小程序。 只fork不star是很没品的。项目地址: https://gitcode.com/gh_mirrors/ce/certificate-photo创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价