这里我们使用博客系统作为示例域,并且使用一些模型来描述它。博文仅仅是博客系统的一部分。除了博文,博客系统还有博客作者、博文评论、博文标签和博文归总数据。通俗地说,域由以下实体和关系构成:
Authors- 
                                
每位博客作者可以创建一篇或多篇博文。
 Blogs- 
                                
每篇博文由一位主要作者发布。每篇博文可以有多条评论。每篇博文可以关联一个或多个标签。每篇博文还有归总数据:关于博文的评论数、访问量等等,这些和博文内容身是独立的。
 Comments- 
                                
每条评论仅属于一篇博文。
 Tags- 
                                
每个标签都会关联一篇或多篇博文。
 Summaries- 
                                
每份归总数据仅属于一篇博文。
 
使用Solar术语,我们可以更专业地描述域:
- 
                                
An
Author"has many"Blogs。这是“一对多”关系。 - 
                                
A
Blog entry"belongs to" anAuthor。这是“一对一”关系。 - 
                                
A
Blog entry"has many"Comments。这是“一对多”关系。 - 
                                
A
Blog entry"has many"Tags和它关联, 同时也“属于”那些标签。这是“多对多”关系。 - 
                                
A
Blog entry"has one"Summary line。这是“一对一”关系。 - 
                                
A
Comment"belongs to" aBlog entry。这是“一对一”关系。 - 
                                
A
Tag"has many"Blog entries和它关联, 同时某些时候也“属于”那些博文。这是“多对多”关系。 
基于这种描述,在上例中,我们发现Solar能识别的四种关系:
- 
                                
占优一对一关系(
hasOne及其变种hasOneOrNull); - 
                                
占优一对多关系(
hasMany); - 
                                
从属(相互的)一对一和多对一关系(
belongsTo); - 
                                
多对多关系。
 
这里的多对多关系在某些系统中被称为“has and belongs to many”。在Solar中,因为AssociationTableMapping模型的需要,我们称这种关系为hasManyThrough。我们把Blogs和Tags的相互关系称为Taggings关联模型。


