和上一篇隔了很长时间了,现在接着写。
主要谈一下roller的domain model,下图是david johnson画的E-R图,包含了所有的数据库表结构
我们一个一个来讲这些表:
(1)website => Weblog(表示website表对应领域模型里的Weblog类,下同)
代表一个blog,一个网站可有多个blog,每个blog拥有全局唯一的handle,这个blog于是可以用http://www.domain.com/handle来访问。
(2)webpage=> WeblogTemplate
代表主题中的一个template网页,roller自带了几个主题,如basic,metal等,每个主题由几个velocity模板和CSS定义组成,webpage表中的一行就代表了一个个velocity模板或CSS。
(3)weblogentry=>WeblogEntry 代表blog中的一篇文章
(4)roller_weblogentrytag=>WeblogEntryTag roller_weblogentrytagagg=>WeblogEntryTagAggregate
文章的tag和对tag的统计,WeblogEntryTagAggregate实际是每个tag在整个blog中出现的次数的统计,可用来实现tag cloud功能
(5)roller_comment=>WeblogEntryComment 评论
(6)bookmark=>WeblogBookmark,folder=>WeblogBookmarkFolder
bookmark相当于“友情链接”,这些链接能用文件夹组织起来
(7)category=>WeblogCategory 用于组织entry
(8)rolleruser=>User 用户
(9)userrole=>UserRole
用户的角色,有两个值“admin”或“editor”,这是对全局而言的角色,对某个blog的角色由permission决定
(10)permissions=>WeblogPermission
user和blog是多对多的关系,通过permissions表关联,有3中permissions:“admin”, "author", "limited"。
还有其他一些表,都是不太重要或和blog的主要功能关系不大,没研究,就不说了