我有一个应用程序,作为SAAS销售给多个客户。可以预见的是,有时候客户想要通过添加自己的字段来自定义应用程序的某些区域,具体来说是与操作/项目跟踪相关的区域。我们目前允许少量这样的自定义。它是通过在数据库中存储每个客户的附加字段名称及其id来处理的。任何值都将存储在第二个表中,该表具有每个潜在数据类型(字符串、日期等)的列。此表引用自定义字段的id和所附加对象的键。通过这种方式,我们最终将所有自定义字段数据存储在单个表中。如果这仅限于偶尔的一小部分客户的少量字段,我不会太担心,但现在它被视为销售和客户服务为个别客户快速定制应用程序的机会,并且在某些情况下,我们得到的自定义字段比原始问题上的字段还要多。
我已经说服人们暂时不要进行这些大规模的自定义,而我普遍认为,如果您想要这种行为,您应该正确地构建它,即创建相关的数据库表等。另一个问题提到了在数据库中实现此功能的2种方法(链接)。其中一种解决方案与上面概述的类似。另一种方法是在要自定义的表上有一堆冗余字段,称为Text1、Text2、Date1、Date2等,然后可以根据需要由用户重命名它们。
我想知道,其他人是如何解决这个问题的?他们的解决方案有哪些限制?还有任何进一步阅读的建议吗?
谢谢,