IM即时聊天系统-Openfire爬坑之路四 数据库

数据库架构指南

介绍

本文档概述了Openfire数据库架构中的数据类型约定和表。某些信息(例如列索引和外键)被省略。为此,请阅读您感兴趣的数据库的各个架构。

数据类型约定

日期列类型支持在数据库之间差异很大。因此,Openfire特别将日期编码为VARCHAR值。每个日期都是一个Java long值,该值0填充为15个字符。long值是Java Date对象的内部表示形式,可以通过如下代码获得:

long currentDate = new Date().getTime();

布尔值始终表示为一个数值:0表示false,1表示true。

数据库表

以下是Openfire数据库架构中每个表的说明。

  • ofGroup
  • ofGroupProp
  • ofGroupUser
  • ofID
  • ofOffline
  • ofPresence
  • ofPrivate
  • ofUser
  • ofUserProp
  • ofUserFlag
  • ofRoster
  • ofRosterGroups
  • ofPrivacyList
  • ofVCard
  • ofVersion
  • ofProperty
  • ofExtComponentConf
  • ofRemoteServerConf
  • ofSecurityAuditLog
  • ofMucService
  • ofMucServiceProp
  • ofMucRoom
  • ofMucRoomProp
  • ofMucAffiliation
  • ofMucMember
  • ofMucConversationLog
  • ofPubsubNode
  • ofPubsubNodeJIDs
  • ofPubsubNodeGroups
  • ofPubsubAffiliation
  • ofPubsubItem
  • ofPubsubSubscription
  • ofPubsubDefaultConf

| ofGroup (用户组数据) |

Column Name Type Length Description
groupName VARCHAR 50 组名(主键)
description VARCHAR 255 小组介绍

| ofGroupProp (组的名称-值关联) |

Column Name Type Length Description
groupName VARCHAR 50 组名(主键)
name VARCHAR 100 组属性名称(主键)
propValue VARCHAR 4000 组属性值

| ofGroupUser (将用户与组关联) |

Column Name Type Length Description
groupName VARCHAR 50 组名(主键)
username VARCHAR 100 用户名(主键)
administrator NUMBER n/a 管理员(布尔值)(主键)

| ofID (用于唯一ID序列生成) |

Column Name Type Length Description
idType NUMBER n/a ID类型(例如,组,用户,花名册)(主键)
id NUMBER n/a ID的下一个可用块(用于与数据库无关的ID序列生成器)

| ofOffline (离线消息存储) |

Column Name Type Length Change
username VARCHAR 32 User Name (Primary Key)
messageID NUMBER n/a 存储的消息的ID(主键)
creationDate VARCHAR 15 储存日期信息
messageSize NUMBER n/a 消息大小(以字节为单位)
stanza TEXT n/a 讯息文字

| ofPresence (离线状态) |

Column Name Type Length Change
username VARCHAR 64 用户名(主键)
offlinePresence TEXT n/a 设置为用户注销的状态消息
offlineDate CHAR 15 存储日期信息

| ofPrivate (私人数据存储) |

Column Name Type Length Description
username VARCHAR 32 用户名(主键)
name VARCHAR 100 私人条目的名称(主键)
namespace VARCHAR 200 私有条目的命名空间(主键)
privateData TEXT n/a 私人数据的值

| ofUser (用户数据) |

Column Name Type Length Description
username VARCHAR 32 用户名(主键)
plainPassword VARCHAR 32 纯文本密码数据
encryptedPassword VARCHAR 255 加密的密码数据(默认)
name VARCHAR 100 Name
email VARCHAR 100 电子邮件
creationDate VARCHAR 15 创立日期
modificationDate VARCHAR 15 最后修改日期

| ofUserProp (用户的名称/值关联) |

Column Name Type Length Description
username VARCHAR 32 用户名(主键)
name VARCHAR 100 用户属性名称(主键)
propValue VARCHAR 4000 用户属性值

| ofUserFlag (在用户上设置的特殊标志(如已禁用)) |

Column Name Type Length Description
username VARCHAR 64 用户名(主键)
name VARCHAR 100 用户属性名称(主键)
startTime CHAR 15 标志开始生效的时间(“ now”为空)
endTime CHAR 15 标志结束生效的时间(“ forever”(永远)为空)

| ofRoster (好友名单或列表) |

Column Name Type Length Description
rosterID NUMBER n/a 名册编号(主键)
username VARCHAR 32 User Name
jid TEXT n/a The address of the roster entry
sub NUMBER n/a 条目的订阅状态
ask NUMBER n/a 条目的请求状态
recv NUMBER n/a 指示条目是接收到的名册请求的标志
nick VARCHAR 255 分配给该名册条目的昵称

| ofRosterGroups (名册中的好友条目组) |

Column Name Type Length Description
rosterID NUMBER n/a 名册编号(主键)
rank NUMBER n/a 条目的位置(主键)
groupName VARCHAR 255 该名册组的用户定义名称

| ofPrivacyList (用户隐私列表) |

Column Name Type Length Description
username VARCHAR 32 隐私列表的名称(主密钥)
name VARCHAR 100 指示这是否是用户的默认隐私列表的标志
isDefault NUMBER n/a 指示这是否是用户的默认隐私列表的标志
list TEXT n/a 隐私列表的XML表示

| ofVCard (vCard联系信息) |

Column Name Type Length Description
username VARCHAR 32 用户名(主键)
vcard TEXT n/a vCard条目的值

| ofVersion (包含产品版本信息) |

Column Name Type Length Description
name VARCHAR 50 跟踪版本信息的项目的名称(主键)
version INTEGER n/a 版本号

| ofProperty (服务器属性) |

Column Name Type Length Description
name VARCHAR 100 属性名称(主键)
propValue TEXT n/a 条目的值

| ofExtComponentConf (外部组件配置) |

Column Name Type Length Description
subdomain VARCHAR 255 外部组件的子域(主键)
secret VARCHAR 255 外部组件的共享密钥
permission VARCHAR 10 指示是否允许组件连接到服务器的权限

| ofRemoteServerConf (远程服务器配置) |

Column Name Type Length Description
xmppDomain VARCHAR 255 外部组件的域(主键)
remotePort NUMBER n/a 远程服务器要连接的端口
permission VARCHAR 10 指示是否允许远程服务器连接到服务器的权限

| ofSecurityAuditLog (记录安全事件) |

Column Name Type Length Description
msgID NUMBER n/a 审核消息的ID(主密钥)
username VARCHAR 64 执行操作的用户
entryStamp NUMBER n/a 事件发生时的时间戳
summary VARCHAR 255 事件发生时的摘要
node VARCHAR 255 发生事件的节点
details TEXT n/a 详细的情况

| ofMucService (Groupchat服务) |

Column Name Type Length Description
serviceID NUMBER n/a 服务ID(索引)
subdomain VARCHAR 255 服务子域(主键)
description VARCHAR 255 服务说明
isHidden NUMBER n/a 如果从管理界面列表中隐藏则为1,正常为0

| ofMucServiceProp (Groupchat服务的名称-值关联) |

Column Name Type Length Description
serviceID NUMBER n/a 服务ID(主键)
name VARCHAR 100 属性名称(主键)
propValue TEXT n/a 适当的价值

| ofMucRoom (Groupchat房间数据) |

Column Name Type Length Description
roomID NUMBER n/a 房间ID(主键)
creationDate VARCHAR 15 创立日期
modificationDate VARCHAR 15 最后修改日期
name VARCHAR 50 用作公共ID的房间名称
naturalName VARCHAR 255 房间的自然名称
description VARCHAR 255 客房说明
canChangeSubject NUMBER n/a 指示参与者是否可以更改主题的标志
maxUsers NUMBER n/a 最多容纳人数
canChangeSubject NUMBER n/a 指示参与者是否可以更改主题的标志
publicRoom NUMBER n/a 指示房间是否将在目录中列出的标志
moderated NUMBER n/a 指示房间是否经过审核的标志
membersOnly NUMBER n/a 指示房间是否为会员制的标志
canInvite NUMBER n/a 指示居住者是否可以邀请其他用户的标志
roomPassword VARCHAR 50 进入会议室的密码数据
canDiscoverJID NUMBER n/a 指示乘员的真实JID是否公开的标志
logEnabled NUMBER n/a 指示是否记录会议室对话的标志
subject VARCHAR 100 房间的最后已知主题
rolesToBroadcast NUMBER n/a 广播角色的二进制表示
useReservedNick NUMBER n/a 标记,指示用户是否只能使用其保留的昵称加入会议室
canChangeNick NUMBER n/a 指示居住者是否可以更改房间昵称的标志
canRegister NUMBER n/a 标记,指示是否允许用户在会议室注册

| ofMucRoomProp (Groupchat房间的名称-值关联) |

Column Name Type Length Description
roomID NUMBER n/a 房间ID(主键)
name VARCHAR 100 属性名称(主键)
propValue VARCHAR 4000 适当的价值

| ofMucAffiliation (房间用户的隶属关系) |

Column Name Type Length Description
roomID NUMBER n/a 房间ID(主键)
jid TEXT n/a 用户JID(主密钥)
affiliation NUMBER n/a 代表隶属级别的数字

| ofMucMember (会议室成员信息) |

Column Name Type Length Description
roomID NUMBER n/a 房间ID(主键)
jid TEXT n/a 用户JID(主密钥)
nickname VARCHAR 255 会员的保留昵称

| ofMucConversationLog (聊天室记录) |

Column Name Type Length Description
roomID NUMBER n/a 房间编号
sender TEXT n/a 将消息发送到会议室的用户的JID
nickname VARCHAR 255 用户在发送消息时使用的昵称
logTime VARCHAR 15 邮件发送到会议室的日期
subject VARCHAR 50 消息更改了新主题
body TEXT n/a 消息正文

| ofPubsubNode (pubsub服务的节点) |

Column Name Type Length Description
serviceID VARCHAR 100 托管节点的服务的标识(主键)
nodeID VARCHAR 100 节点ID(主键)
leaf NUMBER n/a 指示节点是叶节点还是集合节点的标志
creationDate VARCHAR 15 创立日期
modificationDate VARCHAR 15 最后修改日期
parent VARCHAR 100 父节点的ID(如果有)
deliverPayloads NUMBER n/a 指示有效载荷是否包含在通知中的标志
maxPayloadSize NUMBER n/a 有效负载的最大大小(以字节为单位)
persistItems NUMBER n/a 指示节点是否将持久保存已发布项目的标志
maxItems NUMBER n/a 最多可保留的项目数
notifyConfigChanges NUMBER n/a 指示节点配置更改时是否发送通知的标志
notifyDelete NUMBER n/a 指示删除节点时是否发送通知的标志
notifyRetract NUMBER n/a 指示删除已发布项目时是否发送通知的标志
presenceBased NUMBER n/a 指示是否仅向用户发送通知的标记
sendItemSubscribe NUMBER n/a 指示是否将最近发布的项目发送给新订户的标志
publisherModel VARCHAR 15 节点使用的发布者模型
subscriptionEnabled NUMBER n/a 指示是否允许订阅的标志
configSubscription NUMBER n/a 指示是否必须配置新订阅才能激活的标志
accessModel VARCHAR 10 节点使用的访问模型
payloadType VARCHAR 100 要在节点上提供的有效载荷数据的类型
bodyXSLT VARCHAR 100 XSLT的URL,用于将有效载荷格式转换为消息正文
dataformXSLT VARCHAR 100 XSLT的URL,用于将有效载荷格式转换为Data Forms结果
creator VARCHAR 1024 创建节点的实体的JID
description VARCHAR 255 节点说明
language VARCHAR 255 节点的默认语言
name VARCHAR 50 节点名称
replyPolicy VARCHAR 15 定义所有者或发布者应收到对项目的答复的策略
associationPolicy VARCHAR 15 定义谁可以将叶节点与集合关联的策略
maxLeafNodes NUMBER n/a 收集节点可能具有的最大叶节点数

| ofPubsubNodeJIDs (与节点关联的JID) |

Column Name Type Length Description
serviceID VARCHAR 100 托管节点的服务的标识(主键)
nodeID VARCHAR 100 节点ID(主键)
jid VARCHAR 1024 实体的JID(主键)
associationType VARCHAR 20 与节点的关联类型

| ofPubsubNodeGroups (与节点关联的角色组) |

Column Name Type Length Description
serviceID VARCHAR 100 托管节点的服务的ID
nodeID VARCHAR 100 节点ID
rosterGroup VARCHAR 100 节点所有者的花名册组允许订阅和检索项目

| ofPubsubAffiliation (节点会员) |

Column Name Type Length Description
serviceID VARCHAR 100 托管节点的服务的标识(主键)
nodeID VARCHAR 100 节点ID(主键)
jid VARCHAR 1024 会员的JID (主键)
affiliation VARCHAR 10 Type of affiliation

| ofPubsubItem (发布到节点的项目) |

Column Name Type Length Description
serviceID VARCHAR 100 托管节点的服务的标识(主键)
nodeID VARCHAR 100 节点ID(主键)
id VARCHAR 100 发布项目的ID(每个节点唯一)(主键)
jid VARCHAR 1024 发布者的JID
creationDate VARCHAR 15 创立日期
payload TEXT n/a 包含在已发布项目中的有效负载的XML

| ofPubsubSubscription (节点的订阅) |

Column Name Type Length Description
serviceID VARCHAR 100 托管节点的服务的标识(主键)
nodeID VARCHAR 100 节点ID(主键)
id VARCHAR 100 订阅ID(主密钥)
jid VARCHAR 1024 接收通知的地址
owner VARCHAR 1024 拥有订阅的会员的JID
state VARCHAR 15 订阅状态(在工作流程中)
deliver NUMBER n/a 指示是否启用通知的标志
digest NUMBER n/a 指示实体是否要接收通知摘要的标志
digest_frequency NUMBER n/a 发送任何两个通知摘要之间的最小毫秒数
expire VARCHAR 15 租赁订阅结束或结束的日期
includeBody NUMBER n/a 指示实体是否除了有效载荷格式之外还希望接收消息正文的标志
showValues VARCHAR 30 实体要接收其通知的状态
subscriptionType VARCHAR 10 订户是订阅项目还是节点(仅限集合节点)
subscriptionDepth NUMBER n/a 接收来自特定深度的孩子的通知(仅收集节点)
keyword VARCHAR 200 活动需要匹配的关键字

| ofPubsubDefaultConf (节点的默认配置) |

Column Name Type Length Description
serviceID VARCHAR 100 托管节点的服务的标识(主键)
leaf NUMBER n/a 指示配置是属于叶节点还是集合节点的标志(主键)
deliverPayloads NUMBER n/a 指示有效载荷是否包含在通知中的标志
maxPayloadSize NUMBER n/a 有效负载的最大大小(以字节为单位)
persistItems NUMBER n/a 指示节点是否将持久保存已发布项目的标志
maxItems NUMBER n/a 最多可保留的项目数
notifyConfigChanges NUMBER n/a 指示节点配置更改时是否发送通知的标志
notifyDelete NUMBER n/a 指示删除节点时是否发送通知的标志
notifyRetract NUMBER n/a 指示删除已发布项目时是否发送通知的标志
presenceBased NUMBER n/a 指示是否仅向用户发送通知的标志
sendItemSubscribe NUMBER n/a 指示是否将最近发布的项目发送给新订户的标志
publisherModel VARCHAR 15 节点使用的发布者模型
subscriptionEnabled NUMBER n/a 指示是否允许订阅的标志
accessModel VARCHAR 10 节点使用的访问模型
language VARCHAR 255 节点的默认语言
replyPolicy VARCHAR 15 定义所有者或发布者应收到对项目的答复的策略
associationPolicy VARCHAR 15 定义谁可以将叶节点与集合关联的策略
maxLeafNodes NUMBER n/a 收集节点可能具有的最大叶节点数

你可能感兴趣的:(IM即时聊天系统-Openfire爬坑之路四 数据库)