gpt4 book ai didi

mysql - 如何构建调查数据?

转载 作者:行者123 更新时间:2023-11-29 01:48:12 25 4
gpt4 key购买 nike

注意:这不是 this question

我的任务是构建一项调查,我们的客户服务人员可以使用该调查从客户那里获取有关我们服务等的信息。

我的问题是如何将问题/答案存储在存储问题的数据库中,如下所示:

  • bool 问题1
    • if (false):字符串 question2(通常是 question1 为假的原因)

这很容易,但是问题可以嵌套多个层次:

  • bool 问题1
    • if (false) bool 问题 2
      • if (true) 字符串问题3
      • if (false) 字符串问题4

如果我不必将它存储在数据库中,我会将问题(实际上是整个调查)表示为一个组合,但我不知道如何存储这样的东西。

最佳答案

如果您的问题形成了一棵树,而不是一张图,有两种常见的方法可以represent hierarchical data in sql .

Adjacency List Model 模型 需要重复自连接来查找子项(子项的...子项的)。如果你有一个 ORM,比如 Hibernate,ORM 将负责做足够的自连接以带回一个问题及其子答案。如果没有 ORM 来执行此操作,您将不得不动态地向查询添加自联接,或者执行多个查询,一个查询用于前一个结果集中的每一行。

通常归功于 Joe Celko 的嵌套集模型允许您在一次选择中获得整棵树。但这意味着添加和删除节点更加复杂,需要更新所有行。

在邻接表中,您可以有一个像这样的问题表(id, question text, id_next_if_true, id_next_if_false)。这与经典的邻接列表不同,因为不是 child 持有 parent_id, parent 持有两个 child id,或 null。

关于mysql - 如何构建调查数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/749486/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com