日期:2014-05-16  浏览次数:20413 次

从Alfresco看老外的软件设计(五)Alfresco数据库-XML-Code联合分析
涉及到主要的数据库有如下



alf_child_assoc 非常重要,以TreeNode 的形式记录了上下级的目录关系.
alf_namespace 主要和 alf_qname 合并使用
alf_node 节点的存储表
alf_node_aspects 记录 aspects 的 ,之前有介绍aspect
alf_node_properties 非常重要,记录了 alf_node 的各种参数,Lucene的 Properties就靠它
alf_qname 非常重要,通常和alf_nodeproperties 等组合使用
alf_store 是概念上的存储块,也指定了Lucene目录,同时也是 alf_node root的根节点

alf_assess_control_entry 访问控制实体表,决定了那个用户对应的节点访问权限
alf_access_control_list 决定了用户可以拥有权限的节点
alf_acl_member 其实就从acl 到 ace 的映射
alf_authroity 用户存储的地方

select
 acl.id
from
org.alfresco.repo.domain.hibernate.DbAccessControlListMemberImpl as aclmem
         join aclmem.accessControlList as acl
         join aclmem.accessControlEntry as ace
         join ace.authority as authority
       where
         authority.authority = :user