为非技术用户提供可自定义的表单

时间:2009-06-24 15:20:04

标签: php database forms

我很好奇其他人如何为他们网站的用户(主要是非技术用户)提供可自定义的表单。有可能有一个图书馆可以实现这一目标,但我还没有见过。

一些担忧是:

  • 每个表单元素的选项
    为用户提供哪些选项,请记住所有这些选项都需要保留。
  • 布局自定义
    仅具有从上到下的顺序布局就足够了。是否真的有必要提供不同的布局? (例如,两列布局)
  • 数据库存储
    用于将表单中输入的数据存储在数据库中的任何有效/相对快速的方法。这里的问题是您不知道需要多少列。而且,将所有内容存储为VARCHAR是可以的(丢失一些日期/整数的'可查询性)。
  • 验证
    是否应该内置验证(取决于字段类型),还是可自定义?

有很多可能性,我希望看到其他人使用/提供的内容以及他们认为有效的内容。任何潜在的问题或是否真的值得提供这个。

3 个答案:

答案 0 :(得分:2)

这是垂直市场应用软件架构的圣杯之一。许多人尝试过,大多数都失败了。了解Sharepoint在这方面的工作。您无法看到体系结构,但可以看到用户界面。

除了相当复杂的复杂程度之外,您还需要将具有技术素养的人员添加到流程中。例如,一个名为ZygoWare的保险平台在可以由企业直接定制的前提下发布。在实践中,这在保险政策管理系统等方面往往效果不佳,而且产品因难以实施而闻名。

对于像salesforce.com或在线商店构建器这样的产品,产品更简单,因此更容易实现直接的最终用户定制。

我曾参与指定保险承保产品。在这样的产品中支持定制有几个关键方面:

  • 数据库架构 - 允许使用自定义属性配置系统。在商业保险中,合同记录可以有200个字段,并且可能还有几个复杂的结构位于其下方。

  • 用户界面。系统将需要记录这些,因此表单上的自定义字段的方法是必要的。您可能还需要设置其他屏幕和数据库表。

  • 业务规则。您可能希望使用业务规则引擎来支持可配置的业务逻辑。这本身就非常复杂,设计规则集的分析师需要对业务领域和系统架构都非常熟悉。

  • 工作流。工作流程在批量业务方面具有特殊性,并且正在进入大型商业业务。在订阅市场中,您的工作流程涉及可能或可能不具备参与工作流程的设施的第三方。

  • 产品。平台可能需要支持多种保险产品(例如,商业财产,生命/健康,海运货物,汽车,海上能源)。为了避免为公司中的每个部门部署不同的策略管理系统(典型的Lloyds辛迪加雇佣了50-200人),您的平台必须以某种方式支持不同的产品线,可能涉及自定义屏幕,工作流程和业务规则。不同的产品。

这是软件定制的复杂结束。实际上,像这样的软件需要分析师和开发技能才能成功实施业务解决方案。域名和产品非常复杂,没有专业技能就无法实施。

在此基础上,我定制系统的方法有几个关键支柱:

确认谁将实际定制系统

构建它以适应它们。在上面的案例中,正确的级别是由供应商,内部(承包商和长期员工)或第三方咨询公司工作的分析师和开发人员团队。适当的抽象级别是一种脚本语言,允许扩展(基于每个产品),表单构建工具(例如QT设计器或Visual Studio),数据库模式管理工具以及可能的规则引擎(例如Ilog)。对于在线商店建设者,高级用户可以合理地弄清楚如何自己完成。

解决需要定制的内容

在保险平台的情况下,您将在您正在推出一个基本定制系统的级别进行定制。这种系统架构应允许插入扩展,而无需对整个系统进行回归测试。对于在线商店,您基本上可以自定义显示器的布局并使用支付提供商配置帐户信息。

不要自欺欺人地解决问题的复杂性。

不要试图使系统超出其自然水平。历史上充斥着那些认为他们可以建立一个最终用户可以用来构建和维护复杂业务应用程序的平台的人。这种产品的商业上成功的例子是电子表格。如果你想看看它在实践中的运作情况,可以尝试在一家大型金融公司的后台工作一段时间。

FSA等大多数监管机构都对“终端用户计算”持模糊态度,而且这些行业的监管环境推动了许多值得花费时间的CYA和手动控制这些流程的FTE。在这样的组织的后台办公室内的多个区域中冗余地完成相同的计算是相当普遍的,并且结果相互协调以提供手动控制,因此有人可以安全地签署数字。

答案 1 :(得分:1)

我不会尝试从头开始构建这样的系统。创建一个能够编辑任何形状数据的通用表单构建应用程序,以及编辑布局,确实是一个圣杯。

围绕这个建立了整个公司;请查看,例如:www.wufoo.com或Microsoft Office InfoPath。

更简单的工作包括Google Spreadsheet(带有表单编辑/数据输入部分),但对于大多数情况来说,它有点过于简单了。

答案 2 :(得分:0)

您是否考虑过使用MS Dynamics CRM?在很多方面与Salesforce类似。从用户的角度来看,它非常容易定制,以至于我们不得不锁定一些用户来定制UI。

从开发者的角度来看,它有以下构建块:

  • 数据库层持久性(到SQL Server)。
  • UI自定义性
  • 表单级和字段级安全配置文件
  • 报告(通过SQL Server Reporting Services)。
  • 可自定义的业务流程,工作流程和对话框。
  • 可扩展的自定义代码注入点(通过注册自定义插件)

我们大量使用它来建立我们所处的公共部门,健康行业的解决方案。这真的很不错。

糟糕的是,它需要一个良好的网络/基础设施团队......