Liferay表结构介绍(一):系统平台相关表

参考:http://www.huqiwen.com/2016/06/04/liferay-database-referee-1-system-tables/

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。

posted @ 2020-10-12 11:33  溶洞  阅读(240)  评论(0编辑  收藏  举报