当你在 Orchard 中新建一个页面时,页面上的 Title、Body、Field 等信息都存放在哪里呢?
下面我们简单分析一下 Orchard 中几个常用表的用途。
在 Orchard 中 Content Item 和 Page 是同一个意思,都是指一个页面,所以当我说 Content Item 或 Page 时都指一个具体的页面。
1. Common_BodyPartRecord
存放 Body 里面的信息, 在只 Save 不发布的时候,只会更新当前的记录, 而修改后每发布一次都会在表中增加一条记录。
字段描述:
Id: 自增长字段
ContentItemRecord_id : ContentItem 的 Id, 对应表 Orchard_Framework_ContentItemRecord 中的 Id
Text : Body 中的内容
2. Title_TitlePartRecord
存放 Title ,在只 Save 不发布的时候,只会更新当前的记录, 而修改后每发布一次都会在表中增加一条记录。
字段描述:
Id : 自增长字段
ContentItemRecord_id : 外键 对应表 Orchard_Framework_ContentItemRecord 的 Id
Title : Title 的名字
3. Orchard_Framework_ContentItemRecord
第一次创建一个 Page 时候会在该表中添加一条记录。
字段描述:
Id: ContentItem 的 Id
Data : 表示一个 ContentItem 是否已发布,只保存不发布时 Data 为 NULL, 发布后该字段变成 <Data /> 标志该页面已经发布,
只对应第一次创建一个 Page 的情况。
ContentType_id : 外键,对应 ContentType 的 Id, 对于表 Orchard_Framework_ContentTypeRecord 中的 Id。
4. Orchard_Framework_ContentTypeRecord
显而易见系统中现有的 ContentType 。
字段描述:
Id : ContentType 的 Id
Name : ContentType 的名字
5. Common_CommonPartRecord
第一次发布一个 Page 时会在该表中增加一条记录,只会记录这一次。
字段描述:
Id : 新建 Content Item 的 Id
OwnerId : 所有者
CreateUtc : 创建时间 Utc Time
PublishedUtc :
ModifiedUtc :
Container_id : 外键
6. Common_CommonPartVersionRecord
一个 Page 的版本控制信息,每 Save(无论发布还是不发布) 一次都会在该表中增加一条记录。
字段描述:
Id : 新建 Content Item 的 Id
ContentItemRecord_id : 外键, 对应相应的 Page
CreateUtc : 创建时间 Utc Time
PublishedUtc : 发布时间,如果只是 Save 而没有发布则该字段为 NULL
ModifiedUtc :
7. Orchard_Framework_ContentItemVersionRecord
Page 的版本控制信息, 每 Publish 一次都会在该表添加一条新的记录。
这个版本控制和 Common_CommonPartVersionRecord 版本控制的差别在于
Common_CommonPartVersionRecord 记录创建、修改及发布的时间
Orchard_Framework_ContentItemVersionRecord 记录发布次数和页面数据等。
字段描述:
Id : 自增长字段
Number :Publish 的次数,你对一个页面修改后又 Publish 了几次
Published : 这个版本的记录是否已发布 , 1 表示已发布 ,0 表示未发布
Latest : 是否是最新的, 1 表示最新, 0 表示不是最新
Data :一些 Field 和 Module 中的数据
ContentItemRecord_id : 外键, 对应相应的 Page
8. Orchard_Framework_DataMigrationRecord
数据库的版本控制,如果系统检测到某一个 Part 的 Version 和 代码中的 Version 不一致,
就会自动执行数据库更新的代码,并更新这个表中的 Version 字段。
有关 Field 和 Settings 的存储请参考我的另一篇随笔: http://www.cnblogs.com/lesliefang/archive/2012/11/13/2768827.html 加起来大概介绍了十几个表。
OK 其它的一些表就不一一列举了,大家在使用中慢慢熟悉就好了, Orchard 数据库表还是比较简单的,表的命名都见名知意,很容易找到你想要的数据。
大体了解一下表的结构对了解 Orchard 的架构和 Debug 还是有些帮助的。