【问题标题】:SharePoint: should I use lists or a database?SharePoint:我应该使用列表还是数据库?
【发布时间】:2008-11-02 03:36:39
【问题描述】:

我正在设计自定义 SharePoint 应用程序。在以前的项目中,所有数据都保存在 SharePoint 列表中,这就是我现在一直在尝试的方式。但是,我已经到了数据模型增长的地步,我觉得有必要对其进行规范化并将一个逻辑实体拆分为多个物理列表。我想知道是否应该从 SP 列表切换到经典数据库。一方面,我对 SharePoint 开箱即用的新项目、编辑项目、所有项目表单感到满意;另一方面,我担心一旦我必须查询连接数据(如果它保留在SPLists 中),性能会受到影响。
如果您对此问题有任何见解或经验,请分享。谢谢。

【问题讨论】:

    标签: sharepoint architecture


    【解决方案1】:

    这取决于您的要求,但根据我的经验,您应该使用数据库而不是列表:

    1) 当您的数据库模型中存在多对多关系时

    2) 当您将两个或多个实体链接在一起时(例如,客户 > 发票 > 发票产品)。

    SharePoint 很棒,但在上述情况下,您会遇到 SharePoint UI 限制问题。

    3) 如果您计划有任何自定义报告或图表,您应该坚持使用您自己的数据库。

    当您使用数据库实体时,最好的方法是开发您自己的 Web 部件,因为 BDC 价格昂贵且在大多数情况下非常有限。您还可以检查 3rd 方 Web 部件(例如 Bamboo Web 部件)


    以下是使用 SharePoint 列表而不是数据库的原因:

    • 权限
    • 最终用户易于使用
    • 在数据表/Excel/Access 中编辑
    • 工作流程
    • 搜索

    【讨论】:

    • 我同意使用数据库的原因,但不一定同意使用 SharePoint 列表的原因。如果您的数据存储在外部数据库中并在 SharePoint 中单独访问或与列表结合使用,则使用 BDC(如果您有 MOSS)可以完成其中的许多任务。
    • 不幸的是 BDC 仅适用于 MOSS Enteprise,而且大多数人只使用 WSS。
    【解决方案2】:

    如果您有复杂的查询,我建议您将它们放入单独的数据库中。当数据模型不经常增长时,列表是很好的。

    扩展列表列中的字段数量包括直接使用您必须编码的 STSADM 更新 ContentType。但是,直接从数据库中查询数据(当然还有一些缓存)将导致更快的开发,而无需更新链接到与其关联的每个列表的所有 ContentType。

    当然,如果开启缓存,从数据库中查询到的数据会在页面输出层缓存。

    【讨论】:

    • 我想补充一点,搜索不会成为问题,因为爬虫会爬取网站而不是数据库。我还可以告诉您,您可以将代码绑定到列表的事件(添加、编辑、删除),并让它们在这些事件上执行代码。同步所有内容真的很酷。
    【解决方案3】:

    除了Maxim的回答,我还建议您考虑搜索。如果您需要深入挖掘这些数据,OTB 搜索真的很棒。

    【讨论】:

      【解决方案4】:

      我不会太担心去自定义数据库获取数据。

      这确实意味着需要额外的工作来使用自定义控件为它设置皮肤并将这些控件引入到列表为您执行的布局页面和/或自定义 Web 部件中。

      如果您有可用的 BDC,那将是可行的方法,否则自定义。

      因此,最终需要在易于与 sharepoint 集成和提供数据输入表单与对所有这些项目进行编码但完全控制数据完整性之间进行权衡。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-21
        • 2011-05-18
        • 1970-01-01
        • 2014-09-27
        • 2012-05-18
        • 2016-07-07
        相关资源
        最近更新 更多