我们正在开发一个应用程序,将记录插入数据库以便日后查看,我们希望通用的解决方案,以便我们不必重做DB
每次我们将此部署到客户。
记录有三种类型的数据:
公共数据: 每个记录共有的一组数据项,例如记录ID,记录创建日期和记录类型。
扩展数据:
其中一些数据是特定于记录类型的,因此记录类型A始终具有数据元素A,B,C
和D而记录类型B始终具有数据元素E,F,J and K
客户特定数据:
这是客户希望保留特定类型的每个记录的数据,例如,如果客户要求type A
的所有记录都具有名字和姓氏,但type B
的记录仅具有电话号码。
扩展数据不太可能经常更改,任何更改都可能涉及代码更改,因此将具有链接到扩展数据的公共数据的表作为1 to 1
关系是我们所期望的要做。
我们在可视化方面遇到的问题是如何以有意义的方式存储客户特定数据。我最初的冲动是与其中key/value pairs
的表有一对多的关系,但考虑到我们希望每天将20,000
个记录向上插入表中,这将导致表格搜索速度极慢,因为每条记录可能会有10-20
个条目。
秒秒解决方案是在其中包含N
列,其中N
是一个足够大的数字,以至于没有客户可能需要拥有那么多自定义字段。然后有一个表将客户特定字段映射到每种记录类型的列。
第三个解决方案是将字段存储在Clob中JSON or XML
,我不确定如何进行此操作并使其可搜索。
我确定这是一个已经多次解决的问题,我宁愿不重新发明轮子,更不用说创造一个原来是正方形的轮子。