tigase数据库结构(十三)

一、Tigase数据库有很多张表,其中最主要的是3张表:tig_users,tig_nodes和tig_pairs。 #tig_users

tig_users存储用户信息,有uid(主键,用户ID),user_id(用户名),usr_pw(用户密码)等字段。 1.1 tig_users表 这个表定义了基本的用户信息,包括:

uid 唯一主键 user_id Jid sha1_user_id=sha1(user_id) user_pw =ALG(pass) 只有使用默认AUTH才有用,ALT=MD5(pass|userid+pass).. acc_create_time 创建时间 last_login 最后登录时间 online_status 在线状态(默认0) failed_logins 登录失败次数 account_status 必须>0有效

二、tig_nodes

tig_nodes是存储节点信息(用于把数据以层次的形式表现),有nid(主键,节点ID),parent_nid(父节点ID),uid(用户ID),node(节点类型)5个字段。每个uid对应5个节点:root,offline,privacy,invisible和msgoffline,以下是uid为14的用户对应的5个节点。

其结构层次如下:

root--privacy--offline | | invisible msgoffline

默认用户有一个root节点。 数据库是一个“递归格式的”标准树形表,有一个parent_nid指向父节点。 主要属性: 节点:nid 用户:uid 父类节点:parent_nid 节点名称:node

三、tig_pairs

tig_pairs没有主键,以(key,value)的形式存储节点的具体数据。uid为14的用户在tig_pairs中的数据如下: pval字段以XML格式存储,各行的含义如下:

(1)第1行是privacy-list,对应tig_nodes中的invisible节点,暂时不清楚什么意思;

(2)第2行是roster,对应tig_nodes中的root节点,存储该用户的好友列表;

(3)第3-5行是messages,对应tig_nodes中的msgoffline节点,即离线信息,表明当前该用户有3条未接收的离线信息。

msg_history 这个表用来存放用户离线时需要送到的消息。 属性: 消息标识 msg_id 时间 ts 发送者id sender_uid 接收者id receiver_uid 消息类型 msg_type 消息内容 message

StanzaType

error, // Common type get, set, result, // iq types available, unavailable, probe, subscribe, // presence types subscribed, unsubscribe, unsubscribed, // presence types chat, groupchat, headline, normal, // message types valid, invalid, // Dialback verification packets terminate, // Bosh - session termination stanza invisible; // Other unknown types...

订阅发布(pubsub)Schema

tig_pubsub_service_jids 描述了订阅发布服务,这种设计允许支持多个订阅发布服务。 属性: 服务id 服务jid 服务jid sha1

tig_pubsub_nodes

节点是一个订阅发布消息的“主题”,支持树形结构,也就是高层节点发布,下层的节点也会收到。 消息订阅者订阅某个“节点”,消息发布这把消息发布发布某个节点,从而实现了双向透明的消息交换。 属性: 节点标识 node_id 服务id service_id 节点名称 name 名称sha1 name_sha1 节点类型: 0|1 节点标题 title 节点描述 description 创建者id creator_id 创建时间 creation_date 配置(xml) configuration collection_id

tig_pubsub_jids 存储订阅用户信息,属性: id jid 用户id

节点/用户关系(tig_pubsub_affiliations)


__EOF__

本文作者veblenJan°
本文链接https://www.cnblogs.com/veblen/p/14703868.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   venblenJan°  阅读(247)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!
点击右上角即可分享
微信分享提示