我有一个应用程序,作为SAAS出售给多个客户。可以预见,有时客户希望通过添加自己的字段来自定义应用程序的某些区域,特别是与操作/项目跟踪相关的区域。我们目前允许少量此项。它通过在db中为每个客户存储附加字段的名称来处理,每个字段的id都有。然后将任何值存储在第二个表中,该表具有每个潜在数据类型的列(字符串,日期等)。此表引用自定义字段的ID以及它所附加的对象的键。通过这种方式,我们最终将所有自定义字段数据存储在单个表中。如果它仅限于奇数客户的少量领域,我不会太在意它,但它现在被视为销售和客户服务的机会,以便为个别客户快速定制应用程序,在某些情况下,获得的自定义字段数量超过了相关项目的原始字段数。
我已经说服人们,我们现在应该推迟这些大规模的定制,我一般认为如果你想要这种行为你应该正确构建它,即创建相关的数据库表等还有另一个问题提到了在数据库here中实现这一点的两种方法。一种解决方案与上面概述的类似。另一种是在要定制的表上有一堆冗余字段,称为Text1,Text2,Date1,Date2等,然后可以根据需要在gui中根据需要重命名它们。
我当时想知道,其他人如何解决这个问题?他们的解决方案有什么限制?以及我可能会做进一步阅读的任何建议。
欢呼声,
答案 0 :(得分:1)
我们还开发SaaS,我们也有需要各种自定义的客户。
它或多或少对所有客户都有用,它有一个固定的实现。含义,表格和字段。通过属于用户包的某些访问权限启用或禁用该功能。
当允许用户动态定义字段及其相关子字段以创建自己的表单时,我们也有不同的情况。它和它一样复杂。在这里,我们使用一种Entity Attribute Value model来满足这些需求。
这就是“企业”应用程序,可能是它们的独特功能 - 客户想要一些异国情调,我们不能拒绝。