我目前正在构建一个大型SharePoint部署。
此部署有可能在几年内增长到数PB。
我们正在讨论的当前问题之一是使用InfoPath Forms将数据存储在SharePoint中。其中一些表单包含字段,需要大量映射到内容类型以进行持久性和搜索。我们的搜索要求主要是一个单一的标识符,而不是表格的内容,虽然我被告知我应该在将来抢先“想要”搜索。
我们要求将我们的信息用于次要目的(例如报告等)。在持久保存到系统后,必须立即访问该信息。
因此我的核心问题是:
答案 0 :(得分:0)
1。)
好处:
风险:
2。)这是一个艰难的。更改表单模板和重新部署非常简单,只需几分钟。但是,更改模板的结构(基础XML)会让您很容易陷入困境,因为旧的(填写的)表单将无效 - 有一个选项可以“升级”现有的旧表单,但是我的经历从来没有按照预期的那样发挥作用。
内容类型的行为非常相似,比如说你想从内容类型中删除一个列,因为它不再需要了 - 你必须删除对它的所有引用,这意味着删除所有项目以便你可以删除列。 / p>
3.)良好的可移植性肯定是InfoPath的一个问题,因为它严重依赖于相应的URL结构。您绝对可以添加更多网站集,但这意味着您必须将表单模板部署到每个网站集。信息(填写的表单)不能在网站集之间轻松共享,因为每个表单都包含SourceURL(它来自哪里)和模板的命名空间(一旦部署就会不断变化)。
考虑到您的要求,我强烈建议使用关系存储而不是InfoPath - 仅仅因为它不是为数据存储设计的。
我会使用SQL数据库来存储数据,并使用自定义UI(WebPart或Application Page)来执行CRUD操作。这意味着该信息实际上并未存储在SharePoint中 - 只是显示(这也意味着无法使用内置的SharePoint搜索进行搜索)。还有可能使用Business Connectivity Services(基本上可以完成上述所有操作而无需创建自定义UI - 但是对于大量数据而言非常慢)。
如果您确实需要SharePoint中的信息,为什么不仅仅使用列表来实现所有这些?