-- 软件开发服务域 + 附件管理 + 站点配置(迭代-2026-09-29) -- -- 本文件仅作人工参考:启动时 logic.Migrate() 会幂等执行同样的 DDL(升级只需重启)。 -- 手工执行亦可(CREATE TABLE IF NOT EXISTS 可重复运行)。 -- 服务商品(软件开发服务:网站/小程序/App/桌面四系列) CREATE TABLE IF NOT EXISTS `goods` ( `id` bigint unsigned NOT NULL AUTO_INCREMENT, `category` tinyint NOT NULL DEFAULT 1 COMMENT '分类 1网站开发 2小程序开发 3App开发 4桌面程序开发', `title` varchar(128) NOT NULL DEFAULT '' COMMENT '服务名称', `summary` varchar(500) NOT NULL DEFAULT '' COMMENT '简介(列表卡片展示)', `content_md` mediumtext COMMENT '详细说明 Markdown 原文,小程序端解析渲染', `price_cents` bigint NOT NULL DEFAULT 0 COMMENT '定价(分),0=面议', `price_note` varchar(64) NOT NULL DEFAULT '' COMMENT '价格备注(如「起」「/项目」)', `cover_path` varchar(255) NOT NULL DEFAULT '' COMMENT '封面相对路径(/static/...),库内不存域名', `sort` int NOT NULL DEFAULT 0 COMMENT '排序值,越小越靠前', `is_enabled` tinyint NOT NULL DEFAULT 1 COMMENT '上架状态 0下架 1上架', `created_at` datetime DEFAULT NULL, `updated_at` datetime DEFAULT NULL, `deleted_at` datetime DEFAULT NULL COMMENT '软删除时间,NULL=未删除', PRIMARY KEY (`id`), KEY `idx_cat_sort` (`is_enabled`,`category`,`sort`,`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='软件开发服务商品'; -- 上传附件登记(头像/封面/通用附件统一落账,供后台附件管理) CREATE TABLE IF NOT EXISTS `attachments` ( `id` bigint unsigned NOT NULL AUTO_INCREMENT, `scene` varchar(32) NOT NULL DEFAULT '' COMMENT '上传场景 avatar/cover/attachment', `file_name` varchar(255) NOT NULL DEFAULT '' COMMENT '原始文件名', `file_path` varchar(255) NOT NULL DEFAULT '' COMMENT '相对路径(/static/...),库内不存域名', `ext` varchar(16) NOT NULL DEFAULT '' COMMENT '扩展名(小写含点)', `size_bytes` bigint NOT NULL DEFAULT 0 COMMENT '文件大小(字节)', `md5` char(32) NOT NULL DEFAULT '' COMMENT '内容 md5(落盘文件名)', `uploader_id` bigint NOT NULL DEFAULT 0 COMMENT '上传者 id(管理端或用户)', `uploader_type` varchar(16) NOT NULL DEFAULT 'admin' COMMENT '上传者类型 admin/user', `created_at` datetime DEFAULT NULL COMMENT '上传日期', `deleted_at` datetime DEFAULT NULL COMMENT '软删除时间,NULL=未删除(记录删除,文件本体按引用检查)', PRIMARY KEY (`id`), KEY `idx_created` (`created_at`), KEY `idx_path` (`file_path`), KEY `idx_scene` (`scene`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='上传附件登记(上传日期/上传者/大小,供后台附件管理)'; -- 站点配置:图片等静态资源的对外拼接前缀(种子缺则补;留空 = 按请求域名动态拼接) -- INSERT INTO `settings` (`k`, `v`, `remark`, `updated_at`) -- VALUES ('site.base_url', '', '图片等静态资源的对外拼接前缀(如 https://api.example.com),留空=按请求域名动态拼接', NOW()) -- ON DUPLICATE KEY UPDATE `k` = `k`;