sql - Question-Answer-User实体的数据库设计。特别是在可能存在 N 级嵌套问题的情况下
问题描述
我最终遇到了用户问题/答案的复杂数据库设计问题,并考虑了您的帮助或建议。看起来这是罕见的情况,通常会出现。
用户应该能够提供提供的问题的答案(到这里看起来很容易也很好)。现在我们有一种要求,我们将提供 N 级嵌套问题。
让我通过一个例子来解释它,
Question - 1 : What's your favourite food ? (Very simplest - level -1)
Question - 2 : Do you like football match ? (Level - 1 )
Yes ? No ? (Level-1.1 or call it 2nd nested level)
if No then Why ? (Level - 1.1.1 or call it 3nd nested level)
同样,到目前为止,我们有多达 5 个嵌套级别的题库,我希望您对我们如何做到这一点提出意见/建议?
任何建议都会非常明显!
解决方案
您只需要在 Question 表上有一个 ParentQuestionId。对于顶级问题,这可以为 NULL。
例如:
Question Id: 1
ParentId: NULL
Text: Do you like football match?
Question Id: 2
ParentId: 1
Text: If No then Why?
假设所有问题最多有一个父级,这允许无限嵌套,并且每个级别的无限问题,这对我来说似乎很有意义......
这是一个标准的树层次结构,因此您应该能够很容易地找到此设计的示例和支持它的查询。
推荐阅读
- express - 节点 Escpos 在第二次尝试时打印图像
- spring-security - Spring LDAP 无法获取外部记录的记录
- python - Python - 如何在 selenium 中打印网站的 javascript 变量?
- php - Laravel 本地化 url
- java - 是否有任何选项在 proguard 道具文件中包含 Java 泛型类型
- java - 如果我们在接口中添加方法,我们如何在多个类中实现方法
- java - Android Studio 未从 Firebase 实时数据库中读取检索到的数据
- google-analytics - 维度和指标资源管理器与分析 API 之间的差异
- java - JSON应该在后台下载吗?
- ios - 无法激活,因为它们没有共同的祖先 IBOutlet 和代码