数据库架构指南
介绍
本文档概述了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 |
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 | 收集节点可能具有的最大叶节点数 |