存储可以有条件地显示为文本文件一部分的文本块的最佳数据结构是什么



让我们设置场景。这是一个文本文件:

INTRODUCTION
Paragraph 01
Paragraph 02
Paragraph 03
SECTION XXXXXX
Paragraph 01
Paragraph 02
SECTION YYYYYY
Paragraph 01
SECTION ZZZZZZ
Paragraph 01
Paragraph 02
Paragraph 03

每个段落可以包含更多的段落,但让我们保持简单。

我们希望通过以下简单规则以程序方式构建类似的文本文件:

  • 节始终存在,至少包含一段
  • 可以根据一个或多个条件显示或不显示任何段落。条件被定义为根据上下文计算的代码(例如,想想Python中的eval函数(
  • 将在运行时提供上下文
  • 段落可以以数字开头。因此,我们不能将数字作为段落的一部分(段落可以存在也可以不存在,它们的数字必须遵循正确的顺序:1、2、3等(

要构建的文本类型包括使用条款、隐私政策等。为了简化,法律文本或多或少包含基于web表单响应的内容

编辑:文本是与表单分开生成的。我们只有回应。

因此,我的方法是将文本块(段落(存储为数据库的列。每列连同:

  • 在其截面内的位置
  • 要作为条件评估的代码。如上所述,将在运行时提供用于评估代码的上下文

由于我们可以有一个或多个条件来评估,以确定一块文本是否会包含在最终文本中,所以我不确定该使用哪种数据结构。

关系数据库列的数量将是动态的,因为在每种情况下都存在初始数量不受限制的待评估条件。

NoSQL数据库,将结构存储为JSON,包含文本+条件数组?

有其他方法吗

我用不同的方法解决了这个问题。

我们在前端通过拖动&将2种类型的小部件放入画布(表示文本文件的内容(:

  • 简单文本块
  • 条件小部件:它们将根据运行时前端评估的条件显示/隐藏文本块(这是关键(。类似于Angular ng-if的东西

然后我们编译全文,也在前端。

因此,后端只存储大块的文本。无需将条件逻辑转换为数据库。现在甚至听起来很傻。。。

最新更新