i-do.net种子站点:i-do.net

新文章

爸爸妈妈网2026-04-26T14:53:36.429Z阅读 0

数据库规范

1. 文档目标

统一《科幻力》项目数据库设计与命名规范,避免字段风格混用。

  • 统一规范(数据库 + Prisma):全部使用 snake_case(下划线命名),例如 created_atupdated_at
  • 执行原则:新建与存量模型统一按 snake_case 维护,不再引入驼峰字段。

2. 数据库与 ORM 选型

  • 数据库:MySQL(腾讯云环境)
  • ORM:Prisma 7(当前依赖为 7.7.0
  • 工程化:在 Monorepo 中通过 packages/database 共享数据模型与客户端能力

3. 业务模块与数据表映射

模块关联数据表说明
管理后台 admin.kehuanli.comadmins, admin_roles, admin_permissions, admin_menus, admin_user_roles, admin_role_permissions, admin_role_menus, admin_login_logs, admin_refresh_tokens, admin_token_blacklist管理员账号与权限相关数据
会员中心 member.kehuanli.commembers, member_roles, member_permissions, member_menus, member_user_roles, member_role_permissions, member_role_menus, member_login_logs, member_refresh_tokens, member_token_blacklist会员账号资料与状态数据
内容管理articles, categories, tags, comments, favorites, friend_links, article_tags, article_categoriesCMS 内容管理
系统配置cloud_storage_configs, email_configs, sms_configs系统级配置
OAuthoauth_accounts, oauth_states第三方登录
订单支付orders, order_items, payments, refunds, products交易闭环
AI 能力ai_providers, ai_agents, ai_tools, ai_tasks, task_logs, usage_statsAI Provider/Agent/任务/统计
社媒发布social_accounts, contents, publish_records, wechat_configs, douyin_configs, youtube_configs, content_platforms多平台社媒发布
插件系统installed_plugins, plugin_configs热插拔插件管理
AI 客服customer_service_sessions, customer_service_messages, customer_service_faqs, customer_service_quick_replies, customer_service_tickets, customer_service_ticket_replies在线客服对话/FAQ/工单
龙虾孵化claw_instances, claw_profiles, claw_knowledges, knowledge_chunks, knowledge_embeddings, claw_skills, skill_configs, claw_memories, memory_embeddings, claw_conversations, claw_messages, claw_tasks, task_logs, claw_evolutions龙虾实例全生命周期
多站点管理websites, site_configs, site_nav_menus, site_pages, site_blocks, site_builds, site_build_logs, website_domains, website_templates, claw_assignments多站点创建/编辑/部署/运营
任务队列jobs, job_fails, job_batches异步任务队列
后端 API api.kehuanli.com全部业务表统一业务访问入口
WebSocket wss.kehuanli.comclaw_conversations, claw_messages, claw_tasks龙虾实时对话与任务推送

4. 目录规范

packages/ └── database/ └── prisma/ └── schema.prisma 

5. 命名规范(强制)

5.1 表名(数据库物理表)

  • 使用复数、snake_case:如 adminsmembersmember_orders

5.2 字段名(数据库物理字段)

  • 统一使用 snake_case
  • 主键建议:id
  • 时间字段统一:created_atupdated_at
  • 软删除字段(如需):deleted_at

5.3 Prisma 模型命名

  • Prisma 模型字段统一使用 snake_case(如 created_at
  • Prisma 模型名保持单数 PascalCase(如 AdminMemberRoleDomain
  • 物理表名需显式使用 @@map("table_name") 与数据库表名对齐(复数 snake_case
  • 索引/唯一约束 map 命名统一使用 snake_case

5.4 禁止项

  • 禁止新增驼峰字段(如时间字段使用驼峰写法)
  • 禁止“同一张表内”混用驼峰与下划线字段

6. schema.prisma 标准示例(snake_case)

generator client { provider = "prisma-client-js" } datasource db { provider = "mysql" } enum AdminStatus { active inactive } enum MemberStatus { active inactive } model Admin { id Int @id @default(autoincrement()) username String @unique password String avatar String? phone String? @unique email String? @unique admin_user_roles AdminUserRole[] created_at DateTime @default(now()) updated_at DateTime @updatedAt @@map("admins") } model Member { id Int @id @default(autoincrement()) username String @unique password String avatar String? phone String? @unique email String? @unique status MemberStatus @default(active) points Int @default(0) member_user_roles MemberUserRole[] created_at DateTime @default(now()) updated_at DateTime @updatedAt @@map("members") } 

7. 当前执行状态与后续要求

当前 packages/database/prisma/schema.prisma 已按规范完成:

  • 模型名统一为单数 PascalCase(如 DomainTemplateWebsiteClawInstance
  • 字段命名统一为 snake_case,时间字段统一为 created_atupdated_at
  • 物理表名均显式声明 @@map("xxx"),并与复数 snake_case 表名对齐
  • 索引/唯一约束 map 命名统一为 snake_case
  • 龙虾孵化 14 个 Model、多站点管理 10 个 Model 已完整定义
  • 任务队列 3 个 Model(Job/JobFail/JobBatch)、商品模型(Product)已同步数据库

后续新增模型需遵循:

  1. 字段命名统一 snake_case
  2. 模型名统一单数 PascalCase,表名统一复数 snake_case 并显式 @@map
  3. 索引/唯一约束 map 命名统一 snake_case
  4. 变更同步更新 API 文档、SQL 脚本与数据字典

8. 落地要求

  • 新增表/字段前先对照本规范评审
  • 历史表若存在非规范字段,按迭代计划迁移为下划线命名
  • 接口文档与 SQL 脚本必须使用数据库物理字段名
  • 评审时必须同时检查:Prisma 字段是否为 snake_case@@map 是否完整