【问题标题】:How to design a Master-Detail Sharepoint 2010 application?如何设计一个 Master-Detail Sharepoint 2010 应用程序?
【发布时间】:2011-06-08 00:38:05
【问题描述】:

我正在将 Access 应用程序迁移到 Sharepoint 2010 (Enterprise)。我希望尽可能多地使用 Sharepoint“开箱即用”功能,但我并不反对创建一些 Web 部件。

我正在努力设计此应用程序中的“主”表。该应用程序用于跟踪员工的生产力。每天,大约有 50 位用户访问该应用程序,并且基本上输入了他们当天完成了多少“Widget”。这些“小部件”大约有 30 种类型,并且它们不会经常更改。

该表为每个小部件设计了单独的列。这使得创建报告变得非常容易,因为您所要做的就是从表中选择所有字段并转储结果集。

这种方法的缺点显然是架构是“硬编码”(静态)的。我被要求(由于时间的缘故)尽可能地规范化表格(使用 CustomerID、EmployeeID 等),但将所有“Widget”字段保留在其中。

我建议我们创建一个主从类型关系,用户将添加一个行(可能在 GridView 中),选择他们当天创建的“小部件”(从下拉列表中)并输入他们的数量。他们通常每天只制作 1 - 3 种类型的 Widget。

用户讨厌这种设计,并希望我给他们一个显示所有小部件的数据输入表单,以便他们只需单击框(在他们当天创建的小部件旁边)并输入他们的数量,然后单击保存。

我知道我仍然可以使用主从类型的关系创建这种类型的数据输入表单,但我很确定我不能使用 SP Out of the Box 表单。我可能必须用 GridView 创建一个 Web 部件,然后用所有可能的 Wisdget 填充 GridView,然后让用户在当天制作的每个小部件旁边输入正确的数量。一旦表单被提交回来,我将不得不通过它并找到任何有效数字的数量并为该主记录添加一个(子)详细记录。 (主记录将包含日期、员工、客户等。)“编辑”表单也必须以类似的方式工作。

这是一个非常“丑陋”的解决方案,我正在寻找替代方案。

如果我不能想出一个好的替代方案(并让我的经理相信代码不会太难维护或为项目增加太多开发时间以按时完成),那么我将不得不带来这个丑陋的现有模式及其所有浪费的空间,并在整个应用程序中使用“硬编码”的东西。 (例如,如果我向他们提供 SharePoint 视图以查看创建了多少特定类型的小部件,我将不得不“硬编码”下拉列表中的所有这些值,并“求和”正确/匹配的数据库列。呸。

另一个考虑因素是报告。现在所有的报告都只包含每个小部件的报告列。为了保留这些报告的外观(如果我使用主/详细关系),将需要“更高级的”查询(存储过程)以“columuar”格式构建正确的结果集。 (而且我不确定如何以类似的方式布置数据的 SharePoint 视图。)

让模式保持原样肯定会“更容易”(并在表中保留所有浪费的空间)。我只是讨厌开发一个应用程序,每当我们需要向应用程序添加一个新的“小部件”时,我们必须在几个地方更改应用程序并重新构建。 (虽然,我的经理并不关心这个,他只是想把它推出来,尽快......叹气......)

任何关于如何在 SharePoint 中执行此类应用程序(特别是如何创建数据输入表单和视图)的帮助/建议将不胜感激!

谢恩

【问题讨论】:

  • 看看我们的产品MatchPoint。 MatchPoint 是 SharePoint 的应用程序框架。

标签: asp.net sql-server sharepoint-2010


【解决方案1】:

你有没有看过这些想法:

http://paulgalvinsoldblog.wordpress.com/2007/12/24/implementing-master-detail-relationships-using-custom-lists/

http://blogs.msdn.com/b/alexma/archive/2006/04/10/610934.aspx

在我看来,您应该将数据存储在列表而不是 SQL 服务器中。如果您决定使用 SQL server,请查看 BCS 构建 Master 子视图。

【讨论】:

  • 马杜尔。 SP 列表绝对是一种选择。如果我们使用 SQL,我们将为 SURE 使用 BDC 和外部列表。至于您发布的网址。我知道如何做那些描述的事情,但正如我在帖子中所说,这不是他们想要的。他们希望他们的数据输入表单向他们展示所有“小部件”(详细信息)的列表。他们不想添加单个(子)详细记录,而必须从下拉列表中选择“小部件”。如果可以毫不费力地做到这一点,我宁愿使用这种类型的数据库设计,而不是“硬编码”模式。
猜你喜欢
  • 2013-03-14
  • 2013-01-07
  • 1970-01-01
  • 2012-11-30
  • 2012-03-31
  • 2012-03-24
  • 2012-05-16
  • 2012-03-24
  • 2013-04-08
相关资源
最近更新 更多