如何最好地为每个用户/客户创建自定义字段?

3
我有一个应用程序,作为SAAS销售给多个客户。可以预见的是,有时候客户想要通过添加自己的字段来自定义应用程序的某些区域,具体来说是与操作/项目跟踪相关的区域。我们目前允许少量这样的自定义。它是通过在数据库中存储每个客户的附加字段名称及其id来处理的。任何值都将存储在第二个表中,该表具有每个潜在数据类型(字符串、日期等)的列。此表引用自定义字段的id和所附加对象的键。通过这种方式,我们最终将所有自定义字段数据存储在单个表中。如果这仅限于偶尔的一小部分客户的少量字段,我不会太担心,但现在它被视为销售和客户服务为个别客户快速定制应用程序的机会,并且在某些情况下,我们得到的自定义字段比原始问题上的字段还要多。

我已经说服人们暂时不要进行这些大规模的自定义,而我普遍认为,如果您想要这种行为,您应该正确地构建它,即创建相关的数据库表等。另一个问题提到了在数据库中实现此功能的2种方法(链接)。其中一种解决方案与上面概述的类似。另一种方法是在要自定义的表上有一堆冗余字段,称为Text1、Text2、Date1、Date2等,然后可以根据需要由用户重命名它们。

我想知道,其他人是如何解决这个问题的?他们的解决方案有哪些限制?还有任何进一步阅读的建议吗?

谢谢,

1个回答

1

我们也开发SaaS,我们也有客户想要各种定制。

如果它对所有客户更或多少有用,它就有一个固定的实现。这意味着表格和字段。该功能通过属于用户包的某些访问权限启用或禁用。

当用户被允许动态定义字段及其相关子字段以创建自己的表单时,我们也有不同的情况。它尽可能复杂。在这里,我们使用一种实体属性值模型来满足这些需求。

这就是“企业”应用程序的事情,可能是它们独特的特点 - 客户想要一些奇特的东西,我们不能说不。


你是否应用了实体属性值模型来进行性能优化?(比如缓存或索引等) - Muhammad Shahab

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接