SharePoint Content Database简介

SharePoint作为微软主打的企业Portal平台,功能强大,使用简单,非常的方便。对于很多关系数据,我们可以使用自定义列表来维护,如果是非关系数据,可以使用文档库来维护。另外还可以在上面进行版本维护,工作流审批,而这一切可以不用写一行代码,只需要在界面和SharePoint Designer中进行设置即可完成。

虽然SharePoint很简单,很容易上手,但是对于开发人员来说,维护在其中的数据又怎么和其他系统进行集成呢,我们可以使用3种方法:

  • 在SharePoint Server使用C#程序,调用SharePoint对象模型,读取其中的各种数据。
  • 在客户端调用SharePoint的WebService,读取其中的数据。
  • 直连SQL Server SharePoint Content数据库,使用SQL来读取其中的数据。

前面两种方法,都是官方推荐的,文档详细,介绍较多,我就不讲了,我接下来主要研究如何直接读取SharePoint Content DB的数据。微软官方肯定是不推荐使用这种方法的,因为这个太底层了,完全脱离了SharePoint的控制,如果对其中数据进行直接的修改,那么可能会产生SharePoint无法预期的数据值。不过做数据库应用开发的都明白,这种方法执行效率最高,灵活性最大。为了避免写入无法预期的数据导致SharePoint崩溃,所以我们只是读取SharePoint Content DB,不做任何Update和Delete操作。要读取SharePoint Content DB的数据,首先要对其表结构做给基本的了解。

从网上(http://blogs.technet.com/b/praveenh/archive/2010/12/20/inside-a-sharepoint-content-db.aspx)找的一个简介的表格,介绍了主要的几个SharePoint Content DB Table:

Features Table that holds information about all the activated features for each site collection or site.
Sites Table that holds information about all the site collections for this content database.
Webs Table that holds information about all the specific sites (webs) in each site collection.
UserInfo Table that holds information about all the users for each site collection.
Groups Table that holds information about all the SharePoint groups in each site collection.
Roles Table that holds information about all the SharePoint roles (permission levels) for each site.
All Lists Table that holds information about lists for each site.
GroupMembership Table that holds information about all the SharePoint group members.
AllUserData Table that holds information about all the list items for each list.
AllDocs Table that holds information about all the documents (and all list items) for each document library and list.
RoleAssignment Table that holds information about all the users or SharePoint groups that are assigned to roles.
Sched Subscriptions Table that holds information about all the scheduled subscriptions (alerts) for each user.
ImmedSubscriptions Table that holds information about all the immediate subscriptions (alerts) for each user.

另外再配上了一个图,说明其中的关系。


其中最最重要的就是AllUserData这个表,我们可以从微软MSDN找的一些对几个核心表的介绍:

http://msdn.microsoft.com/en-us/library/hh625524(v=office.12).aspx

这个文档介绍的是最新的SharePoint2013的数据库结构,如果使用SharePoint2010或者07也不用担心,大部分字段都是一样的。如果SharePoint2003,还可以参考官方的另一个文档:

http://msdn.microsoft.com/en-us/library/dd587562(v=office.11).aspx

当然,仅仅有这么几个表还不够,在实际使用中,我们还需要关联其他的表进行联合查询,才能完成我们想要的东西。接下来我会写几个Case,一个一个的分析如何查询对应的表。

时间: 2024-10-23 14:18:15

SharePoint Content Database简介的相关文章

如何从SharePoint Content DB中查询List数据

SharePoint用来维护基础数据非常方便,只需要建立自定义列表,然后使用InfoPath自定义一下维护界面,就可以实现在线的增删改查,开发效率很高.如果维护的数据需要进行审批,还可以加入工作流功能.使用SharePoint Designer可以快速开发出简单的工作流,如果是很复杂的工作流,那么就需要使用VS进行开发了.现在数据已经维护进了SharePoint List,那么怎么从数据库中将维护的数据查询出来呢? SharePoint 的列表数据都存储在Content DB中,其中最最重要的表

Oracle Flashback Database简介

Flashback 技术是以Undo segment中的内容为基础的,因此受限于UNDO_RETENTON参数.要使用flashback的特性,必须启用自动撤销管理表空间. 在Oracle 10g中, Flash back家族分为以下成员: Flashback Database, Flashback Drop,Flashback Query(分Flashback Query,Flashback Version Query, Flashback Transaction Query 三种) 和Fla

SharePoint 2010 安装简介及相关补丁下载

1.安装Windows Server 2008 系统,这个我就不说了,大家自己安装,然后配置静态ip,这个也不用我说了吧?!(我遇到了打不上补丁的问题,提示"更新不会应用到系统",后来改用R2,才通过!) 2.开始安装IIS,服务器管理器 - 角色 - 添加角色 - web服务器(IIS) - 下一步 - 下一步 - 把应用程序开发勾上(总觉得会有用) 下一步 - 安装. 备注:IIS安装了就可以,其他功能可以需要的时候,后面再补充安装也可以 特别的是,windows2008的时候,角

如何利用PowerShell分析SharePoint WebApplication体系结构

之前一篇文章<两张图看清SharePoint 2013 Farm 逻辑体系结构>谈到Web Application,Content Database,Site Collection的关系.有了这个逻辑结构图之后,这篇文章将使用PowerShell,来更加直观的展现SharePoint WebApplication的体系结构. SharePoint WebApplication Structure 从上图可以看出,一个WebApplication可以包含多个Content Database,可以

SharePoint 2013 Farm的逻辑体系结构图解

前篇文章分析了SharePoint 2013 的物理拓扑结构.物理拓扑分为3层(2层),详情参见<SharePoint 2013 Farm (多层服务器)安装指南--Least Privilege>,这篇接着脚步,继续走入SharePoint 2013的世界,分析SharePoint 2013 Farm 逻辑体系结构,首先需要有几个基本概念需要了解. Web Application Web Application是由SharePoint 2013产品创建(不能直接在IIS里创建),是一个IIS

SharePoint 2013 版本功能对比

原文:SharePoint 2013 版本功能对比 前言:在SharePoint使用中,经常纠结于版本问题,SharePoint 2013主要有免费的Foundation和收费的标准版.企业版三个版本,他们之间的功能上是不一样的,找了一些资料才发现下面的这个表格,还是很清楚的描述了各个版本的区别,拿过来给大家看看.大家如果想看原版的,我附加链接在最后,点进去看即可,还可以下载PDF文件.   Foundation Standard Enterprise Developer       Acces

Android Content Provider详解及示例代码_Android

Android:Content Provider的使用. 1.Content Provider 简介 2.使用现成的Content Provider 3.定义自己的Content Provider 一.Content Provider 简介 我们说Android应用程序的四个核心组件是:Activity.Service.Broadcast Receiver 和 Content Provider.在Android中,应用程序彼此之间相互独立的,它们都运行在自己独立的虚拟机中.Content Pro

Android Content Provider详解及示例代码

Android:Content Provider的使用. 1.Content Provider 简介 2.使用现成的Content Provider 3.定义自己的Content Provider 一.Content Provider 简介 我们说Android应用程序的四个核心组件是:Activity.Service.Broadcast Receiver 和 Content Provider.在Android中,应用程序彼此之间相互独立的,它们都运行在自己独立的虚拟机中.Content Pro

PHP 简介

Joe Brockmeier 简要介绍了 PHP 脚本语言,讨论了 PHP 的起源.性能和适用的平台.一个简单的 PHP 脚本示例则着重说明了其基本语法和用法. 如果您从事基于 Web 的开发工作,那么可能已经听说过 PHP.您也许不太确切地知道 PHP 是什么.如何工作或者为什么如此热门,但现在该是进一步了解 PHP 的时候了.因此本文简要介绍了关于 PHP 基础的基本概念. 一点背景知识PHP 是作为一个小开放源码,随着越来越多的人意识到它的实用性从而逐渐发展起来.Rasmus Lerdor