-- ============================================================ -- iShare (AiShare) 完整建表脚本 -- 生成时间: 2026-02-16 -- 用途: iShare 流媒体账号合租平台 - 全部 17 张表 -- 数据库: pigxx_app -- 依赖顺序: 基础表 → 业务表 → 关联表 -- ============================================================ USE pigxx_app; SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ============================================================ -- 一、App 基础表(9 张) -- ============================================================ -- 1. app_user — App 用户 CREATE TABLE IF NOT EXISTS `app_user` ( `user_id` bigint NOT NULL COMMENT '用户ID', `username` varchar(255) DEFAULT NULL COMMENT '用户名', `password` varchar(255) DEFAULT NULL COMMENT '密码(BCrypt)', `salt` varchar(255) DEFAULT NULL COMMENT '盐值', `phone` varchar(20) DEFAULT NULL COMMENT '手机号码', `avatar` varchar(255) DEFAULT NULL COMMENT '头像', `nickname` varchar(64) DEFAULT NULL COMMENT '昵称', `name` varchar(64) DEFAULT NULL COMMENT '姓名', `email` varchar(128) DEFAULT NULL COMMENT '邮箱', `wx_openid` varchar(32) DEFAULT NULL COMMENT '微信登录openId', `lock_flag` char(1) DEFAULT '0' COMMENT '锁定状态: 0=正常, 1=锁定', `del_flag` char(1) DEFAULT '0' COMMENT '删除标志: 0=正常, 1=删除', `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户ID', `create_by` varchar(64) NOT NULL DEFAULT ' ' COMMENT '创建人', `update_by` varchar(64) NOT NULL DEFAULT ' ' COMMENT '修改人', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', `last_modified_time` datetime DEFAULT NULL COMMENT '最后密码修改时间', PRIMARY KEY (`user_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='App用户表'; -- 2. app_role — 角色表 CREATE TABLE IF NOT EXISTS `app_role` ( `role_id` bigint NOT NULL COMMENT '角色ID', `role_name` varchar(64) DEFAULT NULL COMMENT '角色名称', `role_code` varchar(64) DEFAULT NULL COMMENT '角色编码', `role_desc` varchar(255) DEFAULT NULL COMMENT '角色描述', `del_flag` char(1) DEFAULT '0' COMMENT '删除标志', `tenant_id` bigint DEFAULT NULL COMMENT '租户ID', `create_by` varchar(64) NOT NULL DEFAULT ' ' COMMENT '创建人', `update_by` varchar(64) NOT NULL DEFAULT ' ' COMMENT '修改人', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', PRIMARY KEY (`role_id`) USING BTREE, KEY `idx_role_code` (`role_code`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='App角色表'; -- 3. app_user_role — 用户角色关联 CREATE TABLE IF NOT EXISTS `app_user_role` ( `user_id` bigint NOT NULL COMMENT '用户ID', `role_id` bigint NOT NULL COMMENT '角色ID', PRIMARY KEY (`user_id`, `role_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户角色关联表'; -- 4. app_social_details — 社交登录配置 CREATE TABLE IF NOT EXISTS `app_social_details` ( `id` bigint NOT NULL COMMENT '主键', `type` varchar(16) DEFAULT NULL COMMENT '社交类型', `remark` varchar(64) DEFAULT NULL COMMENT '备注', `app_id` varchar(64) DEFAULT NULL COMMENT '应用ID', `app_secret` varchar(64) DEFAULT NULL COMMENT '应用密钥', `redirect_url` varchar(128) DEFAULT NULL COMMENT '重定向URL', `ext` varchar(255) DEFAULT NULL COMMENT '拓展字段', `del_flag` char(1) DEFAULT '0' COMMENT '删除标志', `create_by` varchar(64) NOT NULL DEFAULT ' ' COMMENT '创建人', `update_by` varchar(64) NOT NULL DEFAULT ' ' COMMENT '修改人', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (`id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='社交登录配置表'; -- 5. app_article_category — 文章分类 CREATE TABLE IF NOT EXISTS `app_article_category` ( `id` bigint UNSIGNED NOT NULL COMMENT '主键', `name` varchar(60) NOT NULL DEFAULT '' COMMENT '分类名称', `sort` smallint UNSIGNED NOT NULL DEFAULT 50 COMMENT '排序', `is_show` tinyint UNSIGNED NOT NULL DEFAULT 1 COMMENT '是否显示: 0=否, 1=是', `del_flag` char(1) DEFAULT '0' COMMENT '删除标志', `tenant_id` bigint DEFAULT NULL COMMENT '租户ID', `create_by` varchar(32) DEFAULT '0' COMMENT '创建人', `update_by` varchar(32) DEFAULT NULL COMMENT '修改人', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_time` datetime DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='文章分类表'; -- 6. app_article — 文章资讯 CREATE TABLE IF NOT EXISTS `app_article` ( `id` bigint NOT NULL COMMENT '主键', `cid` bigint NOT NULL COMMENT '分类ID', `title` varchar(200) NOT NULL DEFAULT '' COMMENT '标题', `intro` varchar(200) NOT NULL DEFAULT '' COMMENT '简介', `summary` varchar(200) DEFAULT '' COMMENT '摘要', `image` varchar(200) NOT NULL DEFAULT '' COMMENT '封面图片', `content` text COMMENT '内容', `author` varchar(32) NOT NULL DEFAULT '' COMMENT '作者', `visit` int UNSIGNED NOT NULL DEFAULT 0 COMMENT '浏览量', `sort` int UNSIGNED NOT NULL DEFAULT 50 COMMENT '排序', `del_flag` char(1) NOT NULL DEFAULT '0' COMMENT '删除标志', `tenant_id` bigint DEFAULT NULL COMMENT '租户ID', `create_by` varchar(32) NOT NULL COMMENT '创建人', `update_by` varchar(32) DEFAULT NULL COMMENT '修改人', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_time` datetime DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`id`) USING BTREE, KEY `idx_cid` (`cid`) USING BTREE COMMENT '分类索引' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='文章资讯表'; -- 7. app_article_collect — 文章收藏 CREATE TABLE IF NOT EXISTS `app_article_collect` ( `id` bigint UNSIGNED NOT NULL COMMENT '主键', `user_id` bigint UNSIGNED NOT NULL DEFAULT 0 COMMENT '用户ID', `article_id` bigint UNSIGNED NOT NULL DEFAULT 0 COMMENT '文章ID', `del_flag` char(1) NOT NULL DEFAULT '0' COMMENT '删除标志', `tenant_id` bigint DEFAULT NULL COMMENT '租户ID', `create_by` varchar(32) DEFAULT NULL COMMENT '创建人', `update_by` varchar(32) DEFAULT NULL COMMENT '修改人', `create_time` datetime NOT NULL COMMENT '创建时间', `update_time` datetime NOT NULL COMMENT '更新时间', PRIMARY KEY (`id`) USING BTREE, KEY `idx_user_id` (`user_id`) USING BTREE, KEY `idx_article_id` (`article_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='文章收藏表'; -- 8. app_page — 页面装修 CREATE TABLE IF NOT EXISTS `app_page` ( `id` bigint UNSIGNED NOT NULL COMMENT '主键', `page_type` tinyint UNSIGNED NOT NULL DEFAULT 10 COMMENT '页面类型', `page_name` varchar(100) NOT NULL DEFAULT '' COMMENT '页面名称', `page_data` text COMMENT '页面数据(JSON)', `del_flag` char(1) DEFAULT NULL COMMENT '删除标志', `tenant_id` bigint DEFAULT NULL COMMENT '租户ID', `create_by` varchar(32) DEFAULT NULL COMMENT '创建人', `update_by` varchar(32) DEFAULT NULL COMMENT '修改人', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_time` datetime DEFAULT NULL COMMENT '修改时间', PRIMARY KEY (`id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='页面装修表'; -- 9. app_tabbar — 底部导航栏 CREATE TABLE IF NOT EXISTS `app_tabbar` ( `id` bigint UNSIGNED NOT NULL COMMENT '主键', `name` varchar(20) NOT NULL DEFAULT '' COMMENT '导航名称', `selected` varchar(200) NOT NULL DEFAULT '' COMMENT '选中图标', `unselected` varchar(200) NOT NULL DEFAULT '' COMMENT '未选图标', `link` varchar(200) NOT NULL COMMENT '链接地址(JSON)', `del_flag` char(1) DEFAULT NULL COMMENT '删除标志', `tenant_id` bigint DEFAULT NULL COMMENT '租户ID', `create_by` varchar(32) DEFAULT NULL COMMENT '创建人', `update_by` varchar(32) DEFAULT NULL COMMENT '修改人', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_time` datetime DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='底部导航栏表'; -- ============================================================ -- 二、iShare 核心业务表(8 张) -- ============================================================ -- 10. as_platform_type — 平台类型(基础字典表) CREATE TABLE IF NOT EXISTS `as_platform_type` ( `id` bigint NOT NULL COMMENT '主键', `name` varchar(64) NOT NULL COMMENT '类型名称(视频、音乐、AI等)', `platform_type` int DEFAULT 0 COMMENT '类型编号,0=全部', `sort_order` varchar(32) DEFAULT NULL COMMENT '排序', PRIMARY KEY (`id`) USING BTREE, KEY `idx_platform_type` (`platform_type`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='平台类型表'; -- 11. as_platform — 流媒体平台 CREATE TABLE IF NOT EXISTS `as_platform` ( `id` bigint NOT NULL COMMENT '主键', `platform_name` varchar(128) NOT NULL COMMENT '平台名称', `platform_type` int DEFAULT 0 COMMENT '平台类型(关联as_platform_type),0=全部', `icon` varchar(512) DEFAULT NULL COMMENT '应用图标URL', `company` varchar(128) DEFAULT NULL COMMENT '所属公司', `website` varchar(256) DEFAULT NULL COMMENT '平台官网', `sort_order` varchar(32) DEFAULT NULL COMMENT '排序', `product_code` varchar(64) DEFAULT NULL COMMENT '产品编码(类型_名称_id)', PRIMARY KEY (`id`) USING BTREE, KEY `idx_platform_type` (`platform_type`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='流媒体平台表'; -- 12. as_sub_plan — 订阅计划 CREATE TABLE IF NOT EXISTS `as_sub_plan` ( `id` bigint NOT NULL COMMENT '计划ID', `name` varchar(128) NOT NULL COMMENT '计划名称(标准版、高级版等)', `platform_id` varchar(64) DEFAULT NULL COMMENT '所属平台ID', `capacity` varchar(16) DEFAULT NULL COMMENT '用户容量(可共享席位数)', `remark` varchar(256) DEFAULT NULL COMMENT '备注', `sort_order` varchar(32) DEFAULT NULL COMMENT '排序', PRIMARY KEY (`id`) USING BTREE, KEY `idx_platform_id` (`platform_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='订阅计划表'; -- 13. as_sub_payroll — 付费方案 CREATE TABLE IF NOT EXISTS `as_sub_payroll` ( `id` bigint NOT NULL COMMENT '主键', `sub_plans` bigint DEFAULT NULL COMMENT '关联的订阅计划ID', `platform_id` int DEFAULT NULL COMMENT '平台ID', `payroll` int DEFAULT NULL COMMENT '付费周期: 1=月付, 2=季付, 3=年付', `price` decimal(10,2) DEFAULT NULL COMMENT '价格', `currency` varchar(16) DEFAULT NULL COMMENT '货币(CNY/USD等)', `region` varchar(64) DEFAULT NULL COMMENT '地区', `product_code` varchar(64) DEFAULT NULL COMMENT '产品编码', PRIMARY KEY (`id`) USING BTREE, KEY `idx_sub_plans` (`sub_plans`) USING BTREE, KEY `idx_platform_id` (`platform_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='付费方案表'; -- 14. as_sub_product — 订阅产品(合租商品) CREATE TABLE IF NOT EXISTS `as_sub_product` ( `id` bigint NOT NULL COMMENT '主键', `title` varchar(256) NOT NULL COMMENT '产品标题', `description` varchar(1024) DEFAULT NULL COMMENT '描述', `tags` varchar(256) DEFAULT NULL COMMENT '标签(逗号分隔)', `star` int DEFAULT NULL COMMENT '综合评分', `sub_plan_ids` varchar(256) DEFAULT NULL COMMENT '关联的订阅计划ID列表', `amount` decimal(10,2) DEFAULT NULL COMMENT '总价', `user_id` bigint DEFAULT NULL COMMENT '发布者用户ID', `product_type` bigint DEFAULT NULL COMMENT '产品类型: 1=自营, 2=个人', `sub_type` bigint DEFAULT NULL COMMENT '订阅类型: 1=单品, 2=多品组合', `product_code` varchar(64) DEFAULT NULL COMMENT '产品编码(类型_名称_id)', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_time` datetime DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`id`) USING BTREE, KEY `idx_user_id` (`user_id`) USING BTREE, KEY `idx_product_type` (`product_type`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='订阅产品表(合租商品)'; -- 15. as_sub_product_comment — 产品评价 CREATE TABLE IF NOT EXISTS `as_sub_product_comment` ( `id` bigint NOT NULL COMMENT '主键', `star` int DEFAULT NULL COMMENT '评分', `comment` varchar(1024) DEFAULT NULL COMMENT '评价内容', `user_id` bigint DEFAULT NULL COMMENT '评价用户ID', `product_id` bigint DEFAULT NULL COMMENT '关联产品ID', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_time` datetime DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`id`) USING BTREE, KEY `idx_product_id` (`product_id`) USING BTREE, KEY `idx_user_id` (`user_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='产品评价表'; -- 16. as_sub_account — 订阅账号 CREATE TABLE IF NOT EXISTS `as_sub_account` ( `id` bigint NOT NULL COMMENT '主键', `product_id` bigint DEFAULT NULL COMMENT '关联产品ID', `sub_plan_id` int DEFAULT NULL COMMENT '订阅计划ID', `user_id` int DEFAULT NULL COMMENT '账号持有者(主用户)', `sub_payroll_id` int DEFAULT NULL COMMENT '付费方案ID', `region` varchar(64) DEFAULT NULL COMMENT '地区', `share_type` int DEFAULT NULL COMMENT '分享类型', `account_type` int DEFAULT NULL COMMENT '账号类型', `renew_date` datetime DEFAULT NULL COMMENT '续费日期', `platform_id` int DEFAULT NULL COMMENT '平台ID', `account_name` varchar(256) DEFAULT NULL COMMENT '平台登录用户名', `account_passwd` varchar(256) DEFAULT NULL COMMENT '平台登录密码', `passwd_salt` int DEFAULT NULL COMMENT '密码盐值', PRIMARY KEY (`id`) USING BTREE, KEY `idx_product_id` (`product_id`) USING BTREE, KEY `idx_user_id` (`user_id`) USING BTREE, KEY `idx_platform_id` (`platform_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='订阅账号表'; -- 17. as_user_sub — 用户订阅关系 CREATE TABLE IF NOT EXISTS `as_user_sub` ( `id` bigint NOT NULL COMMENT '主键', `platform_id` int DEFAULT NULL COMMENT '平台ID', `capacity` int DEFAULT NULL COMMENT '总容量(席位数)', `capacity_loaded` int DEFAULT NULL COMMENT '已占用容量', `plan_id` int DEFAULT NULL COMMENT '订阅计划ID', `user_id` int DEFAULT NULL COMMENT '用户ID', `main_account` int DEFAULT NULL COMMENT '主账号ID(关联as_sub_account)', `region` varchar(64) DEFAULT NULL COMMENT '地区', `target_ip` varchar(64) DEFAULT NULL COMMENT '目标IP(区域限制用)', `remark` int DEFAULT NULL COMMENT '备注', PRIMARY KEY (`id`) USING BTREE, KEY `idx_user_id` (`user_id`) USING BTREE, KEY `idx_plan_id` (`plan_id`) USING BTREE, KEY `idx_main_account` (`main_account`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户订阅关系表'; SET FOREIGN_KEY_CHECKS = 1;