对于某个应用程序,我们捕获某些表单数据。用户可以随意包含各个部分。关系数据库中的自定义类型系统
每个部分需要捕获的数据类型是每部分自定义的。有时他们是简单的键值对词典。有时它们包含具有一对多或多对多关系的子组件。虽然部分的数量可能会增加,但每个部分的模式都是已知的。
过去,表单部分是固定的,所以我们可以对每个部分的表结构进行硬编码。我们没有实现部分的通用方法 - 它是每个新部分的新数据访问和表格。
但是,新的要求说,用户应该能够设计自己的部分。为了避免动态操纵数据库表,我们希望迁移到可以在数据中表示这些部分的高阶模式。
如果数据只是单值字段的键值对,则可以使用Sections表和SectionFields表来实现。但是由于可能通过多值域和复杂类型的域来嵌套,我相信我们应该把它作为一个基本的类型系统来处理。我不认为它需要继承。
我没有重新从头开始重新创建,而是假定已经在架构中完成了存储在数据库中的高效类型系统的工作。任何想法/指导?
谢谢。
嗨迈克尔,感谢您花时间回复。我也在另一个答案中写了这个 - 虽然这些部分可以是用户定义的,但它们在该用户的应用程序中一直使用。正如你所说,XML blob可能是要走的路。 –