Files
qitongxue-api/sql/software_service.sql

48 lines
3.2 KiB
Go
Raw Normal View History

2026-09-30 17:01:18 +08:00
-- 软件开发服务域 + 附件管理 + 站点配置(迭代-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`;