Liferay表结构介绍(一):系统平台相关表
Liferay的结构基本上可以按这个逻辑进行划分,一个环境包括多个实例,一个实例包含多个站点,一个站点包含多个页面,一个页面里面包含多个Portlet。
创建实例的功能在控制面板-->服务器管理-->创建实例。实例在系统中的反映就是company。
创建company的时候会主要在如下表中生成数据:company、account_、virtualhost、shard、user_、
在Liferay中一个实例相当于云计算中多租户中的一个租户。
Company表
companyId:实例ID,也就是其他表中的companyId,在大部分场景下我们只有一个实例,此companyid不变。
accountId:对应于account_表里面的accountId。
webId:有点类似实例的名称,用来做区分不同实例的。
key_:系统自动生成,基于代码Base64.objectToString(Encryptor.generateKey())
mx:公司的邮件域名,创建时一般和域名保持一致即可。
homeURL:首页的地址,一般默认为空,对应于控制面板,portal设置里面的首页地址。
logoId:实例级别的logo的id,对于应用image表里面的id,在Portal设置显示里面更改logo是此值变化。
system:此值作用不知道,默认为false。界面上没有修改的地方。
maxUsers:可以创建多少用户,用来对实例进行限制,对于多租户场景下的服务租用适合。
active_:此实例是否激活,在实例管理处进行的设置。
account_表
只作主要字段的说明。
userId,userName:为空,一般不修改。
name:和实例中的webId相同。对应于Portal设置中的名称,默认站点的名称。
parentAccountId:一般为0,不作修改。
legalName、legalId、legalType、sicCode、tickerSymbol、industry、type_:分别对应于控制面板Portal设置中的附加信息相应字段。
size:作用未知,没有地方进行初始化,没有地方进行设置。
virtualhost表
虚拟主机表,此表的主要作用是是来对应域名判断访问哪个实例,同一个tomcat中有不同的实例,不同实例的访问是基于域名进行的。
virtualHostId:表的主键,没有特别意义。
companyId:对应用于company表的主键。
layoutSetId:一般为0。
hostname:在创建实例的时候初始化的,可以在实例和portal设置中的虚拟主机那里进行修改编辑。
shard表
存放liferay的数据库分片相关信息
shardId:主键
classNameId:哪个类,对应于classname_表中的主键。一般初始化值为20025,对应用于company。
classPK:对于的className的主键。一般是初始化对应于companyId。
name:数据库分片的值,此值默认为default,可以在portal.properties里面通过 shard.default.name属性进行配置。
+++++++++++++++++++++++++++++
以上为创建实例时为主要更新的表,对于User表的信息,在介绍user表时再详说。
+++++++++++++++++++++++++++++
portalpreferences表
此表保存的为Portal的一些配置信息,主要为Portal设置里面的,比如CAS、LDAP、CDN配置等等相关信息。
如果是寻找Portal的设置是ownerId为companyId,ownerType为1。
portalPreferencesId:主键
ownerId:拥有者的Id,寻找Portal的设置的话,此处的ownerId对应用于companyId。
ownerType:Portal信息的此值为1。
preferences:具体的信息存储,里面存储的是XML结构(liferay 7.0及以后变为json格式),存储的内容主要为key-value的形式。
注意:比如是配置了CAS想取消,就可以在这里找到对应的值,然后对true改为false,重启后就修改了配置。
+++++++++++++++++++++++++++++
其他全局表
address、emailaddress、phone、website等表里面存储的分别对应于地址、邮件地址、电话、网址等,在Portal设置、组织机构、用户等的编辑处都可以见到,这是Liferay存储的一些通信信息,可为指定的对象添加多个地址、多个邮件地址、多个电话等,并设置为哪个为主要的。这些表里面只有三个字段需要特别说明,其他的看字段名即可明白。
primary_:是否主要的。
classNameId:属于是哪个对象,此ID对应于className表里面的主键。
classPK:对象的主键。
程序通过classNameId与classPK的组合,即可确定是哪一条记录。
----------------------------------------------
country表、region表
里面存储的是国家地区的一些元数据相关信息。
classname_表
实体对象信息,使用serviceBuilder生成的表,创建后都会在此生成一条记录。
classNameId:主键
value:对应的对象的名称className。
counter表
liferay里面的相关记数表
name:记数的对象,比如在代码中使用counterLocalService.increment()获取ID时,就是从name为com.liferay.counter.model.Counter的查询,在对应的valuse上面加值。
currentId:当前的ID是多少。
当代码中使用counterLocalService.increment()获取ID时,不传参数就是从name为com.liferay.counter.model.Counter获取,如果传了name,则根据name进行一次加1,如果再传了size参数,则是一次性加上指定的size。
1 条留言 访客:0 条 博主:0 条 引用: 1 条
来自外部的引用: 1 条