teamgram-database-schema

Complete database schema reference for Teamgram Server with all 43 tables, ER relationships, and key table structure explanations for the MySQL teamgram database.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "teamgram-database-schema" with this command: npx skills add zhihang9978/teamgram-database-schema

数据库 Schema(43 张表)与核心关系

概述

数据库位于 teamgramd/deploy/sql/,基础 schema 在 1_teamgram.sql(38 表),迁移补齐到 43 表。

所有服务共用同一个 MySQL 数据库 teamgram,字符集 utf8mb4

43 张表完整列表

表名核心用途
auth_key_infosauth_key 元信息
auth_keysauth_key 存储(加密密钥)
auth_seq_updates每个 auth_key 的 updates 序列号
auth_usersauth_key ↔ user 绑定关系
auths授权记录
bot_commandsBot 命令列表
botsBot 信息
chat_invite_participants通过邀请链接加入的成员
chat_invites聊天邀请链接
chat_participants群成员关系
chats群组信息
default_history_ttl默认历史消息 TTL
devices推送设备/token
dialog_filters对话文件夹
dialogs对话列表(每用户每对等方一行)
documents文件/文档元数据
drafts消息草稿
encrypted_files加密文件
hash_tags消息 hashtag 索引
imported_contacts导入的联系人
message_read_outbox消息已读状态(outbox 侧)
messages消息存储(核心表)
phone_books通讯录
photo_sizes照片尺寸变体
photos照片元数据
popular_contacts热门联系人
predefined_users预定义用户
saved_dialogs保存的消息对话
unregistered_contacts未注册联系人
user_contacts用户联系人关系
user_global_privacy_settings全局隐私设置
user_notify_settings通知设置
user_peer_blocks屏蔽关系
user_peer_settings对等方设置
user_presences用户最后上线时间
user_privacies隐私规则
user_profile_photos用户头像
user_pts_updates每用户 pts 更新序列
user_saved_music保存的音乐
user_settings用户设置
username用户名
users用户信息(核心表)
video_sizes视频尺寸变体

核心 ER 关系

users (user_id)
  |\
  | \-- auth_users (auth_key_id -> user_id)      # 登录设备/授权关系
  | \-- devices (auth_key_id, user_id)           # push token / device
  | \-- user_presences (user_id)                 # last seen
  | \-- user_profile_photos (user_id -> photo_id)
  | \-- user_settings / user_privacies / user_notify_settings
  |
  \-- dialogs (user_id, peer_type, peer_id)      # 会话列表
        |
        \-- messages (user_id, peer_type, peer_id, dialog_id1/2, dialog_message_id)
              |
              \-- documents/photos/encrypted_files (+ photo_sizes/video_sizes)

chats (chat_id)
  \-- chat_participants (chat_id, user_id)
  \-- chat_invites / chat_invite_participants

关键表结构说明

users 表

  • 核心用户信息表
  • user_id 为主键(Snowflake ID)
  • 包含 phone、first_name、last_name、username 等字段
  • deleted 字段标记软删除

messages 表

  • 消息存储核心表
  • 按 user_id + peer 维度存储(inbox/outbox 双写)
  • dialog_id1/dialog_id2 用于双向对话定位
  • dialog_message_id 为对话内消息序号(递增)
  • message_type 区分文本/媒体/服务消息等

dialogs 表

  • 每个用户与每个对等方(私聊/群聊)一行
  • peer_type: 1=user, 2=chat, 3=channel
  • 包含 unread_count、read_inbox_max_id、read_outbox_max_id
  • pinned 字段控制置顶排序

auth_keys / auth_users 表

  • auth_keys 存储 MTProto 授权密钥(256字节 auth_key)
  • auth_users 维护 auth_key_id → user_id 的绑定
  • 一个用户可以有多个 auth_key(多设备登录)
  • auth_key_id 是 auth_key 的 SHA1 后 8 字节

chat_participants 表

  • chat_id + user_id 复合主键
  • participant_type 区分普通成员/管理员/创建者
  • inviter_user_id 记录邀请人
  • joined_at 记录加入时间

SQL 文件路径

  • 基础 schema:teamgramd/deploy/sql/1_teamgram.sql
  • 迁移脚本:teamgramd/deploy/sql/ 下的后续编号文件

Source Code References

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

Wechat Mp Writer

WeChat Official Account (公众号) content writer with article formatting, headline optimization, and engagement tips. Use when you need to write WeChat articles,...

Registry SourceRecently Updated
General

OpenClaw EverMemory Installer

Use this skill when installing, upgrading, verifying, or publishing the EverMemory OpenClaw plugin and its companion skill, including local path install, npm...

Registry SourceRecently Updated
General

Ip Advisor

知识产权顾问。专利、版权、商业秘密、注册流程、保护策略。IP advisor for patents, copyrights, trade secrets. 知识产权、专利、版权。

Registry SourceRecently Updated
1950ckchzh
General

炒股大师模拟器

炒股大师模拟器 | 股市模拟交易练习 | A股/港股/美股投资学习 | 化身文主任/股神老徐/炒股养家/孙宇晨等各位大师学习投资思路 | 多智能体股票讨论群

Registry SourceRecently Updated