您的位置:首页 > 理论基础 > 数据结构算法

SPS2007数据结构分析一

2007-08-15 17:44 113 查看
前段时间在看SPS2007的时候,我从外部感觉在SPS2007中,所有的列表、库的模型以及特征应该是完全一致的,究竟是不是这样呢?我没有时间和能力去阅读大量的文档或反编译程序来看,所以想到通过数据库分析的方式来证实这个问题。
   
首先我们打开安装SPS系统的数据库,看到情况如下:



对应上表我们可以知道凡是Share以及WSS开头的都是SPS建立的数据库。

SharedServices2_DB

  

SharedServices2_Search_DB

  

SharePoint_AdminContent_*

  

SharePoint_Config

  

WSS_Content*

所谓的WSS内容网站集数据库,每一个网站集一个数据库,在安装SPS的时候自动建立一个缺省的网站集,再建立一个个人网站集,以后每建立一个网站集就建立一个这样的数据库

WSS_Search_moss

  

   
其中WSS_Content开头的是每个门户系统单独建立的数据库,我们从这里入手,希望能找到我们需要的东西。
呵呵,其中蓝色标明的那个数据库是昨天新建立的数据库,我们从这里入手比较好办。
首先要找到网站或网站集存储在那里?
我们知道一个新建立的门户本身就是一个网站集,我们看看这个网站集下边有多少网站:



一共5个;
在数据库发现一个【Sites】的表,打开一个记录,有一个【Webs】的表打开6个记录:
报告
门户系统
文档中心
网站
新闻
搜索
对比上述的情况,原来门户系统本身就是一个网站,我们得到如下的资料:

Sites

存储网站集信息

Webs

存储网站信息

AllLists

列表信息

AllUserData

类似列表的用户数据存储

WebParts

存放以下的内容:

1、安装到页面的webpart以及list产生的webpart。

2、list的视图也记录到了这里。

  

Workflow

工作流实例信息

WorkflowAssociation

工作流流程信息

   
为了验证刚才的分析
我们先建立一个网站看看情况:的确如此,Webs增加了一条记录。
新建立一个网站集,也在Sites中找到一个记录。其中有一个字段设置了启动网站。
我们记录下刚才新建立的网站的id为【30e95f81-889a-457f-9e79-3022d2e70262】
因为作这个分析的初衷是分析列表的情况,所以我们要先找到列表在那里存储的。
发现一个【Lists】的表
新建立一个【胡涛的自定义列表】也找到了这个记录,由于这是分析重点,所以我们提出其字段来分析:
我们记录下这个列表的id【d8777117-b1b5-46c3-a483-29bd6c6000c8】

字段名

类型

为空

说明

tp_WebId

uniqueidentifier

Unchecked

网站id

tp_ID

uniqueidentifier

Unchecked

列表id

tp_Title

nvarchar(255)

Unchecked

列表说明

tp_Created

datetime

Unchecked

创建时间

tp_Modified

datetime

Unchecked

最后修改时间

tp_LastDeleted

datetime

Unchecked

  

tp_DeleteCount

int

Unchecked

  

tp_LastSecurityChange

datetime

Unchecked

  

tp_Version

int

Unchecked

  

tp_Author

int

Checked

  

tp_BaseType

int

Unchecked

  

tp_FeatureId

uniqueidentifier

Checked

  

tp_ServerTemplate

int

Unchecked

  

tp_RootFolder

uniqueidentifier

Unchecked

  

tp_Template

uniqueidentifier

Checked

  

tp_ImageUrl

nvarchar(255)

Unchecked

  

tp_ReadSecurity

int

Unchecked

  

tp_WriteSecurity

int

Unchecked

  

tp_Subscribed

bit

Unchecked

  

tp_Direction

int

Checked

  

tp_Flags

bigint

Unchecked

  

tp_ThumbnailSize

int

Checked

  

tp_WebImageWidth

int

Checked

  

tp_WebImageHeight

int

Checked

  

tp_ItemCount

int

Unchecked

  

tp_NextAvailableId

int

Unchecked

  

tp_Description

ntext

Unchecked

列表说明

tp_EmailInsertsFolder

nvarchar(255)

Checked

  

tp_EmailInsertsLastSyncTime

nvarchar(50)

Checked

  

tp_EmailAlias

nvarchar(128)

Checked

  

tp_DeleteTransactionId

varbinary(16)

Unchecked

  

tp_ScopeId

uniqueidentifier

Unchecked

  

tp_HasFGP

bit

Unchecked

  

tp_HasInternalFGP

bit

Unchecked

  

tp_EventSinkAssembly

nvarchar(255)

Checked

  

tp_EventSinkClass

nvarchar(255)

Checked

  

tp_EventSinkData

nvarchar(255)

Checked

  

tp_MaxRowOrdinal

int

Unchecked

  

tp_Fields

ntext

Checked

基于XML的列表字段描述

tp_ContentTypes

ntext

Checked

  

tp_AuditFlags

int

Checked

  

tp_InheritAuditFlags

int

Checked

  

tp_SendToLocation

nvarchar(512)

Checked

  

tp_ListDataDirty

int

Unchecked

  

tp_CacheParseId

uniqueidentifier

Checked

  

tp_MaxMajorVersionCount

int

Checked

  

tp_MaxMajorwithMinorVersionCount

int

Checked

  

tp_DefaultWorkflowId

uniqueidentifier

Checked

  

那么,下一个问题就是列表的定义存在什么地方的呢?
发现一个AllUserData的表,在其中发现了这个数据的存储,可以明确列表数据是存储在AllUserData中的。
那么列表的字段说明在那里呢?呵呵,利用XML文件存储的描述。
如:
   
   
<FieldRef Name="ContentTypeId"/><Field ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" Type="Text" Name="Title" DisplayName="项目" Required="TRUE" SourceID="http://schemas.microsoft.com/sharepoint/v3" StaticName="Title" FromBaseType="TRUE" ColName="nvarchar1" IMEMode="" MaxLength="255" Version="1" RowOrdinal="0">
<Default/>
</Field><FieldRef Name="_ModerationComments" ColName="ntext1"/><FieldRef Name="File_x0020_Type" ColName="nvarchar2"/><Field Type="Note" DisplayName="说明" Required="FALSE" NumLines="6" RichText="TRUE" RichTextMode="Compatible" Sortable="FALSE" IMEMode="inactive" ID="{e762be22-ce63-4f35-93c0-03fd776d0b64}" SourceID="{d8777117-b1b5-46c3-a483-29bd6c6000c8}" StaticName="_x8bf4__x660e_" Name="_x8bf4__x660e_" ColName="ntext2" RowOrdinal="0" Version="1"/><Field Type="DateTime" DisplayName="日期1" Required="FALSE" Format="DateOnly" IMEMode="inactive" ID="{d1ca0850-6c1a-4ef3-9058-5c798b3fbc49}" SourceID="{d8777117-b1b5-46c3-a483-29bd6c6000c8}" StaticName="_x65e5__x671f_1" Name="_x65e5__x671f_1" ColName="datetime1" RowOrdinal="0" Version="1">
<Default>[today]</Default>
</Field><Field Type="DateTime" DisplayName="日期2" Required="FALSE" Format="DateOnly" IMEMode="inactive" ID="{42d37052-8b65-448a-8711-0b0bfca372f9}" SourceID="{d8777117-b1b5-46c3-a483-29bd6c6000c8}" StaticName="_x65e5__x671f_2" Name="_x65e5__x671f_2" ColName="datetime2" RowOrdinal="0" Version="1">
<Default>[today]</Default>
</Field><Field Type="DateTime" DisplayName="日期3" Required="FALSE" Format="DateOnly" IMEMode="inactive" ID="{c778523e-0da6-4a3b-b5de-c537938d63c4}" SourceID="{d8777117-b1b5-46c3-a483-29bd6c6000c8}" StaticName="_x65e5__x671f_3" Name="_x65e5__x671f_3" ColName="datetime3" RowOrdinal="0" Version="1">
<Default>[today]</Default>
</Field><Field Type="DateTime" DisplayName="日期4" Required="FALSE" Format="DateOnly" IMEMode="inactive" ID="{892ddce7-b9d0-4cd1-a07b-d98f8031c4e1}" SourceID="{d8777117-b1b5-46c3-a483-29bd6c6000c8}" StaticName="_x65e5__x671f_4" Name="_x65e5__x671f_4" ColName="datetime4" RowOrdinal="0" Version="1">
<Default>[today]</Default>
</Field><Field Type="DateTime" DisplayName="日期5" Required="FALSE" Format="DateOnly" IMEMode="inactive" ID="{26d8e9df-b5b1-4807-bb2c-547c79f9e0fb}" SourceID="{d8777117-b1b5-46c3-a483-29bd6c6000c8}" StaticName="_x65e5__x671f_5" Name="_x65e5__x671f_5" ColName="datetime5" RowOrdinal="0" Version="1">
<Default>[today]</Default>
</Field><Field Type="DateTime" DisplayName="日期6" Required="FALSE" Format="DateOnly" IMEMode="inactive" ID="{20672267-48a5-4aa2-8574-f8906646278b}" SourceID="{d8777117-b1b5-46c3-a483-29bd6c6000c8}" StaticName="_x65e5__x671f_6" Name="_x65e5__x671f_6" ColName="datetime6" RowOrdinal="0" Version="1">
<Default>[today]</Default>
</Field><Field Name="_x65e5__x671f_7" FromBaseType="FALSE"
Type="DateTime" DisplayName="日期7" Required="FALSE" Format="DateOnly" IMEMode="inactive" ID="{936061e8-8bf8-4be4-8781-38c858263b51}" Version="2" StaticName="_x65e5__x671f_7" SourceID="{d8777117-b1b5-46c3-a483-29bd6c6000c8}" ColName="datetime7" RowOrdinal="0">
<Default>[today]</Default>
</Field><Field Type="DateTime" DisplayName="日期8" Required="FALSE" Format="DateOnly" IMEMode="inactive" ID="{cf96fcce-0ab4-45b8-85d4-54b3fbd047c4}" SourceID="{d8777117-b1b5-46c3-a483-29bd6c6000c8}" StaticName="_x65e5__x671f_8" Name="_x65e5__x671f_8" ColName="datetime8" RowOrdinal="0" Version="1">
<Default>[today]</Default>
</Field><Field Type="DateTime" DisplayName="日期9" Required="FALSE" Format="DateOnly" IMEMode="inactive" ID="{529799a1-8a04-49fb-848b-1fabeca94742}" SourceID="{d8777117-b1b5-46c3-a483-29bd6c6000c8}" StaticName="_x65e5__x671f_9" Name="_x65e5__x671f_9" ColName="datetime1" RowOrdinal="1" Version="1">
<Default>[today]</Default>
</Field><Field ID="{bc91a437-52e7-49e1-8c4e-4698904b2b6d}" ReadOnly="TRUE" Type="Computed" Name="LinkTitleNoMenu" DisplayName="项目" Dir="" DisplayNameSrcField="Title" AuthoringInfo="(链接到项目)" EnableLookup="TRUE" SourceID="http://schemas.microsoft.com/sharepoint/v3" StaticName="LinkTitleNoMenu" FromBaseType="TRUE">
<FieldRefs>
<FieldRef Name="Title"/>
<FieldRef Name="LinkFilenameNoMenu"/>
</FieldRefs>
<DisplayPattern>
<IfEqual>
<Expr1>
<LookupColumn Name="FSObjType"/>
</Expr1>
<Expr2>1</Expr2>
<Then>
<Field Name="LinkFilenameNoMenu"/>
</Then>
<Else>
<HTML><![CDATA[<a onfocus="OnLink(this)" href="]]></HTML>
<URL/>
<HTML><![CDATA[" ONCLICK="GoToLink(this);return false;" target="_self">]]></HTML>
<Column HTMLEncode="TRUE" Name="Title" Default="(无标题)"/>
<IfEqual>
<Expr1>
<GetVar Name="ShowAccessibleIcon"/>
</Expr1>
<Expr2>1</Expr2>
<Then>
<HTML><![CDATA[<img src="http://www.agilelabs.cn/_layouts/images/blank.gif" mce_src="http://www.agilelabs.cn/_layouts/images/blank.gif" class="ms-hidden" border=0 width=1 height=1 alt="]]></HTML>
<HTML>使用 Shift+Enter 可打开菜单(新窗口)。</HTML>
<HTML><![CDATA[">]]></HTML>
</Then>
</IfEqual>
<HTML><![CDATA[</a>]]></HTML>
<IfNew>
<HTML><![CDATA[<IMG src="http://www.agilelabs.cn/_layouts/2052/images/new.gif" mce_src="http://www.agilelabs.cn/_layouts/2052/images/new.gif" alt="]]></HTML>
<HTML>新建</HTML>
<HTML><![CDATA[">]]></HTML>
</IfNew>
</Else>
</IfEqual>
</DisplayPattern>
</Field><Field ID="{82642ec8-ef9b-478f-acf9-31f7d45fbc31}" ReadOnly="TRUE" Type="Computed" Name="LinkTitle" DisplayName="项目" DisplayNameSrcField="Title" ClassInfo="Menu" AuthoringInfo="(链接到带编辑菜单的项目)" SourceID="http://schemas.microsoft.com/sharepoint/v3" StaticName="LinkTitle" FromBaseType="TRUE">
<FieldRefs>
<FieldRef Name="Title"/>
<FieldRef Name="LinkTitleNoMenu"/>
<FieldRef Name="_EditMenuTableStart"/>
<FieldRef Name="_EditMenuTableEnd"/>
</FieldRefs>
<DisplayPattern>
<FieldSwitch>
<Expr>
<GetVar Name="FreeForm"/>
</Expr>
<Case Value="TRUE">
<Field Name="LinkTitleNoMenu"/>
</Case>
<Default>
<Field Name="_EditMenuTableStart"/>
<SetVar Name="ShowAccessibleIcon" Value="1"/>
<Field Name="LinkTitleNoMenu"/>
<SetVar Name="ShowAccessibleIcon" Value="0"/>
<Field Name="_EditMenuTableEnd"/>
</Default>
</FieldSwitch>
</DisplayPattern>
</Field>
   
AllData表有一个非常有意思的事情,就是针对SPS要使用的数据类型,针对一种类型预算设置了很多的字段,比如日期型设置了8个,如果超过了8个,则采用复制一条记录的方式来处理,第二个字段就存储的第二个记录的第一个字段里边。即使删除多的字段,扩展的记录也不会消失了。
   
现在可以看看,附件在什么地方?看到一个【AllDocs】目录,新增加附件以后,确实是存放到这里的。



   
在列表中可以建立目录,目录数据存放在那里呢?还是存放在AllUserData中的。
下一个重要的问题就是视图,视图存放在那里呢?
增加一个名为【new】只有一个字段的视图,按照刚才的分析,可能是采用XML方式存储的,在那里呢?发现文档库表增加了一个名为【new.aspx】的记录,但是比较new.aspx和allitem.aspx发现内容是一样的,仅仅是页面的框架描述。
那么视图存放在什么地方呢?呵呵,通过张文韬的分析,原来发现在【WebParts】里边存储的XML文件,事例如下:
<ViewFields>
<FieldRef Name="Attachments"/>
<FieldRef Name="DocIcon"/>
<FieldRef Name="LinkTitle"/>
<FieldRef Name="_x8bf4__x660e_"/>
<FieldRef Name="_x65e5__x671f_1"/>
<FieldRef Name="_x65e5__x671f_2"/>
<FieldRef Name="_x65e5__x671f_3"/>
<FieldRef Name="_x65e5__x671f_4"/>
<FieldRef Name="_x65e5__x671f_5"/>
<FieldRef Name="_x65e5__x671f_6"/>
<FieldRef Name="_x65e5__x671f_7"/>
<FieldRef Name="_x65e5__x671f_8"/>
</ViewFields>
   
<ViewFields>
<FieldRef Name="DocIcon"/>
</ViewFields><Query/><Aggregations Value="Off"/><RowLimit Paged="TRUE">100</RowLimit>
   
本来没有太多的信心继续,这样可以继续完成所谓的《SPS2007列表体系分析了》
   
我们去分析一下一个新建立的网站集在【WebParts】中有那些记录?
通过SQL查询,看到21个记录,我去网站集新建立一个网站看看情况。新建立网站后,记录变成了26个。
删除主页上缺省的图象Pasrt记录没有变化,增加一个Part,增加了一个记录。
肯定的一个WebPart要放到一个页面上,这个表中也有tp_PageUrlID,我们通过对比发现这个网站的主页的id值为"A8E8C4DA-1996-4F68-BC73-A54B6D4023CE",这又是那个表的id呢?从昨天的分析来看应该是Alldocs,去看看。确实找到了这个记录,说明问题了。
我们搜索的范围更加减小了。
通过搜索,确实主页上存在过3个webpart,所以有三个记录
   
通过关闭已经添加的webprt,我们发现tp_IsIncluded字段的作用,0表示没有不显示在页面上,1表示显示在页面上,如果一个WebPart添加到页面在关闭掉就是这样处理的,关闭掉以后的记录应该是永远都存在。
   
现在我们要做的是增加一个自定义列表,看看webparts的记录变化情况。
发现新增4个记录,分别是怎么回事呢?找出这4条记录,找到这四个记录,经过分析,这四个记录是一般自定义列表的新增,编辑,显示和所有内容列表的内容。
   
现在把这个列表放到主页上,看看WebParts的记录变化情况。
增加了一个记录,我们再次添加这个列表看看情况。
修改其中一个的当前视图,发现tp_view字段有内容了。
更改另外一个部件的视图为简要视图,其tp_view字段也有内容了,如果选择所有项目视图,结果这个字段的内容由为空了。
   
为了加快进度,赶快作一个讨论来研究一下吧
新建立一个讨论,发现这个网站集下的在AllLists中的记录增加一个。
在AllDocs中增加了10个记录:
内容为文件夹以及aspx页面(6个aspx文件,4个目录)。
   
在webparts中有针对这个讨论列表的6个记录,3个为列表视图,3个操作视图。
   
现在需要观察AllListData表了
查询基于这个讨论的内容,记录为0。
增加一个讨论,发现1个记录,增加一个回复,有两个记录,发现一些内容,不过不过瘾,在针对答复给一个答复。
   
这是tp_ThreadIndex字段的情况
0x01C92A31423C1843B1D1B3F344C4A1C989F5047C4E7D
0x01C92A31423C1843B1D1B3F344C4A1C989F5047C4E7D0000133CC6
0x01C92A31423C1843B1D1B3F344C4A1C989F5047C4E7D0000133CC60000273FEC
从这里可以发现另外一种树型结构的数据设计方式,是否有意义就不知道了。
呵呵,和卢彦、吴庆伟讨论这个事情,说是这样的设计方式在程序编制的时候非常方便,但是问题是如果使用不同的数据库,可能就麻烦了,如果有的数据库不支持取字符串的函数,就不得行了。同时这样的方式可能导致大量的全表扫描。
   
   
再增加一个新的讨论【毛泽东是大救星】发现Alldocs中也有相应的记录,讨论的主题是建立一个一个目录,为什么是这样设计呢?
查询自定义列表也有这样的问题,联想到前两天分析的自定义列表等可以建立子目录,可能这样作就形成了一个有效的目录体系。
   
附件存放在那里?
为自定义列表增加一个附件,发现AllDocs增加了2个记录,一个是新建立的目录,一个是上传的文件。在增加一个附件,增加一个记录。
为没有附件的自定义列表项目增加附件,AllDocs增加了2个记录,一个是新建立的目录,一个是上传的文件。
为自定义列表项目增加附件增加同名附件出错,这点从数据结构是可以看到的。
   
建立一个文档库来分析一下情况。
AllLists增加了一条记录。
AllListData没有增加记录
AllDocs增加内容 如下:

sites/hts/oldht

DocLib

1
sites/hts/oldht/DocLib

Forms

1
sites/hts/oldht/DocLib/Forms

AllItems.aspx

0
sites/hts/oldht/DocLib/Forms

Combine.aspx

0
sites/hts/oldht/DocLib/Forms

DispForm.aspx

0
sites/hts/oldht/DocLib/Forms

Document

1
sites/hts/oldht/DocLib/Forms

EditForm.aspx

0
sites/hts/oldht/DocLib/Forms

repair.aspx

0
sites/hts/oldht/DocLib/Forms

template.doc

0
sites/hts/oldht/DocLib/Forms

Upload.aspx

0
sites/hts/oldht/DocLib/Forms

WebFldr.aspx

0
为文档库上载一个文档
AllListData增加一个记录
AllListdocs增加一个记录
   
到这里,不管以前SPS2003是怎么设计的,在SPS2007中,确实正如我前段时间设想的那样,所有的列表和库都是一种列表和库的表现体,只是结构、规则不一样而已。
大家可以对比一下下表和实际看到的目录情况,不难发现SPS2007就是利用AllDocs构建了一个资源目录体系。

sites/hts

oldht

2
sites/hts/oldht

_catalogs

1
sites/hts/oldht

_private

1
sites/hts/oldht

_vti_pvt

1
sites/hts/oldht

default.aspx

0
sites/hts/oldht

DocLib

1
sites/hts/oldht

images

1
sites/hts/oldht

Lists

1
sites/hts/oldht

m

1
sites/hts/oldht/_catalogs

masterpage

1
sites/hts/oldht/_catalogs/masterpage

default.master

0
sites/hts/oldht/_catalogs/masterpage

Forms

1
sites/hts/oldht/_catalogs/masterpage/Forms

AllItems.aspx

0
sites/hts/oldht/_catalogs/masterpage/Forms

DispForm.aspx

0
sites/hts/oldht/_catalogs/masterpage/Forms

EditForm.aspx

0
sites/hts/oldht/_catalogs/masterpage/Forms

MasterPage

1
sites/hts/oldht/_catalogs/masterpage/Forms

Upload.aspx

0
sites/hts/oldht/DocLib

Forms

1
sites/hts/oldht/DocLib

无标题.jpg

0
sites/hts/oldht/DocLib/Forms

AllItems.aspx

0
sites/hts/oldht/DocLib/Forms

Combine.aspx

0
sites/hts/oldht/DocLib/Forms

DispForm.aspx

0
sites/hts/oldht/DocLib/Forms

Document

1
sites/hts/oldht/DocLib/Forms

EditForm.aspx

0
sites/hts/oldht/DocLib/Forms

repair.aspx

0
sites/hts/oldht/DocLib/Forms

template.doc

0
sites/hts/oldht/DocLib/Forms

Upload.aspx

0
sites/hts/oldht/DocLib/Forms

WebFldr.aspx

0
sites/hts/oldht/Lists

aaaa

1
sites/hts/oldht/Lists

List

1
sites/hts/oldht/Lists

List1

1
sites/hts/oldht/Lists/aaaa

1_.000

0
sites/hts/oldht/Lists/aaaa

2_.000

0
sites/hts/oldht/Lists/aaaa

AllItems.aspx

0
sites/hts/oldht/Lists/aaaa

Attachments

1
sites/hts/oldht/Lists/aaaa

DispForm.aspx

0
sites/hts/oldht/Lists/aaaa

EditForm.aspx

0
sites/hts/oldht/Lists/aaaa

Item

1
sites/hts/oldht/Lists/aaaa

NewForm.aspx

0
sites/hts/oldht/Lists/aaaa/Attachments

1
1
sites/hts/oldht/Lists/aaaa/Attachments

2
1
sites/hts/oldht/Lists/aaaa/Attachments/
ff09
1

256406545.jpg

0
sites/hts/oldht/Lists/aaaa/Attachments/1

无标题.jpg

0
sites/hts/oldht/Lists/aaaa/Attachments/2

无标题.jpg

0
sites/hts/oldht/Lists/List

1_.000

0
sites/hts/oldht/Lists/List

2_.000

0
sites/hts/oldht/Lists/List

3_.000

0
sites/hts/oldht/Lists/List

Attachments

1
sites/hts/oldht/Lists/List

DispForm.aspx

0
sites/hts/oldht/Lists/List

EditForm.aspx

0
sites/hts/oldht/Lists/List

Item

1
sites/hts/oldht/Lists/List

NewForm.aspx

0
sites/hts/oldht/Lists/List

nnn.aspx

0
sites/hts/oldht/Lists/List1

AllItems.aspx

0
sites/hts/oldht/Lists/List1

Attachments

1
sites/hts/oldht/Lists/List1

Discussion

1
sites/hts/oldht/Lists/List1

DispForm.aspx

0
sites/hts/oldht/Lists/List1

EditForm.aspx

0
sites/hts/oldht/Lists/List1

Flat.aspx

0
sites/hts/oldht/Lists/List1

Message

1
sites/hts/oldht/Lists/List1

NewForm.aspx

0
sites/hts/oldht/Lists/List1

Threaded.aspx

0
sites/hts/oldht/Lists/List1

毛泽东是大救星

1
sites/hts/oldht/Lists/List1

胡涛是好人

1
sites/hts/oldht/Lists/List1/胡涛是好人

2_.000

0
sites/hts/oldht/Lists/List1/胡涛是好人

3_.000

0
sites/hts/oldht/m

default.aspx

0
   



   
到这里,基于开头提出的设想得到了证实,这些分析内容在以后的分析中肯定就有用了。
   
   
我拷,WSS网站集数据库中70多张表居然没有一个关系。
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息