• 简体中文
  • 数据库概览

    Firmiana 使用内嵌 H2 数据库,通过 Micronaut Data JDBC 进行数据访问。

    实体概览

    用户与认证

    实体用途
    Userusers用户账户
    UserPassworduser_passwords密码哈希
    UserAccessTokenuser_access_tokensBearer Token
    UserRefreshTokenuser_refresh_tokens刷新令牌
    UserDeviceuser_devices设备注册
    UserUiaaDatauser_uiaa_dataUIAA 会话数据
    UserDatauser_data用户偏好

    房间与事件

    实体用途
    Roomrooms房间元数据
    RoomMemberroom_user成员状态
    RoomAliasroom_aliases房间别名映射
    Eventevent所有房间事件
    EventRelationsevent_relations事件关系
    EventPushSummaryevent_push_summary推送通知摘要
    ForwardExtremityforward_extremity事件 DAG 尖端
    RoomStateGrouproom_state_group状态解析组

    端到端加密

    实体用途
    DeviceInboxdevice_inbox设备间消息
    DeviceListStreamdevice_list_stream设备列表变更通知

    媒体

    实体用途
    MediaMetadatamedia_metadata上传元数据
    MediaAuthTokenmedia_auth_token上传认证令牌
    MediaThumbnailsmedia_thumbnails缩略图缓存
    MediaUrlPreviewmedia_url_previewURL 预览缓存

    推送与通知

    实体用途
    UserPushRuleuser_push_rules推送通知规则
    UserPusheruser_pushers推送网关配置
    Notificationnotification待处理通知

    在线状态与输入

    实体用途
    TypingUsertyping_user活跃输入指示器
    PresenceStreampresence_stream在线/离线状态
    Receiptreceipt已读回执
    RoomReceiptroom_receipt按房间的已读位置

    联邦

    实体用途
    ServerSigningKeyserver_signing_key联邦签名密钥
    AppserviceRegistrationappservice_registration应用服务配置

    关系

    User ──1:N──> UserAccessToken
    User ──1:N──> UserDevice
    User ──1:N──> UserPassword
    Room ──1:N──> RoomMember ──N:1──> User
    Room ──1:N──> Event
    Event ──1:N──> EventRelations
    Room ──1:N──> RoomAlias

    索引

    关键性能索引(通过 Flyway 迁移 V21–V22 添加):

    • event(room_id, stream_ordering) — 事件时间线查询
    • room_user(room_id, user_id) — 成员查询
    • device_inbox(created_at) — 设备间消息清理
    • notification(created_at) — 通知查询
    • event_search(content) — 全文搜索(B-tree 回退)