环境:我有一个用 C# 编写的 Windows 网络共享桌面应用程序,它依赖于 MSSQL 数据库。Windows sharepoint services 3.0 安装在同一台 Windows Server 2003 机器上(默认安装、单处理器、默认 sql express 内容数据库等)。
场景:应用程序在处理(创建工单)过程中生成需要保存在sharepoint上的MS Word文档,并且处理的结果必须链接到相应的文档。因此,对于 dbo.WorkOrders(一个工单)中的每个插入,都有一个 MS Word 文档。我需要将共享点库中的文档 ID 保存到我的数据库中,以便稍后可以对相关文档进行可能的手动更正。删除工作订单时,也必须删除 sharepoint 文档。此外,还有一个 dbo.Jobs 表,它是 dbo.WorkOrders 的父表,可以有多个工单。
我正在考虑在 sharepoint 上制作一个自定义列表,它有两个 ID 字段 - 一个是文档 ID,另一个是文档的 AutoID。我认为这在性能方面不是一个好方法,而且它需要太多的维护,因此更容易出错。
我正在考虑的另一条路径是元数据。我可以在 dbo.WorkOrders 中有一个唯一且自动递增的 Identity 字段,我可以将该值保存为文件名 (1.docx, 2.docx 3.docx ... n.docx 其中 n 是dbo.WorkOrder 的标识字段中的值)。在 Word 文档的元数据字段中,我可以保存 dbo.Jobs 中的作业 ID。
我也可以只增加 WorkOrder 中的标识字段(这将是一个 bigint),但是文件名会变得很难看,并且可能会溢出 ID 范围(因为可能有很多文档)。
我还考虑过并拒绝了其他选项,因为它们都不满足要求(链接数据源、子文件夹结构等)。我不确定如何进行。我是 sharepoint 的新手,对我来说仍然有点神秘,因为我不了解系统的所有内部工作原理。
你有什么建议?
编辑:
我想我将使用 guid 作为文件名,并在将文档发送到共享点后将这些 guid 保存在我的数据库中。你对那个怎么想的?