当你在 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 中的 IdText : Body 中的内容
2. Title_TitlePartRecord存放 Title ,在只 Save 不发布的时候,只会更新当前的记录, 而修改后每发布一次都会在表中增加一条记录。
字段描述:Id : 自增长字段ContentItemRecord_id : 外键 对应表 Orchard_Framework_ContentItemRecord 的 IdTitle : Title 的名字
3. Orchard_Framework_ContentItemRecord
第一次创建一个 Page 时候会在该表中添加一条记录。
字段描述:Id: ContentItem 的 IdData : 表示一个 ContentItem 是否已发布,只保存不发布时 Data 为 NULL, 发布后该字段变成 <Data /> 标志该页面已经发布,
只对应第一次创建一个 Page 的情况。ContentType_id : 外键,对应 ContentType 的 Id, 对于表 Orchard_Framework_ContentTypeRecord 中的 Id。
4. Orchard_Framework_ContentTypeRecord
显而易见系统中现有的 ContentType 。
字段描述:Id : ContentType 的 IdName : ContentType 的名字
5. Common_CommonPartRecord第一次发布一个 Page 时会在该表中增加一条记录,只会记录这一次。
字段描述:Id : 新建 Content Item 的 IdOwnerId : 所有者CreateUtc : 创建时间 Utc TimePublishedUtc : ModifiedUtc :Container_id : 外键
6. Common_CommonPartVersionRecord一个 Page 的版本控制信息,每 Save(无论发布还是不发布) 一次都会在该表中增加一条记录。
字段描述:Id : 新建 Content Item 的 IdContentItemRecord_id : 外键, 对应相应的 PageCreateUtc : 创建时间 Utc TimePublishedUtc : 发布时间,如果只是 Save 而没有发布则该字段为 NULLModifiedUtc :
7. Orchard_Framework_ContentItemVersionRecordPage 的版本控制信息, 每 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 的存储请参考我的另一篇随笔: 加起来大概介绍了十几个表。
OK 其它的一些表就不一一列举了,大家在使用中慢慢熟悉就好了, Orchard 数据库表还是比较简单的,表的命名都见名知意,很容易找到你想要的数据。
大体了解一下表的结构对了解 Orchard 的架构和 Debug 还是有些帮助的。