gpt4 book ai didi

sql - 我如何构造我的数据库,以便构成相同 "element"的两个表链接到另一个?

转载 作者:可可西里 更新时间:2023-11-01 08:22:05 24 4
gpt4 key购买 nike

我阅读了有关数据库结构化和规范化的内容,并决定在我的学习用品背后改造数据库以减少冗余。

我有不同类型的条目可以学习。 空白文本/完形填空测试(一个文本,许多空白)和简单的已知-未知(一个问题,一个答案)类型。

现在我有点头疼了:

  • gaps 需要用户表中与问答类型完全相同的列
  • 但他们需要的列少于问答类型(所有信息都在 clozetests 表中)
  • 我希望有一个“魔法”外键,它可以同时指向间隙和术语表。当然,他们的 ID 会重叠。我不喜欢在 user_terms 中同时使用 term_id 和 gap_id,这看起来不雅(但这是我在谷歌搜索了一段时间后能想到的最优雅的,不知道这个 pickle 叫什么名字).
  • 我不想要 user_gaps类似于 user_terms ,因为那样的话,当涉及到 table 时我会陷入同样的​​困境 user_terms_answers .

我张贴了这张硬纸板 Papercut 拼贴我的图式。我没有删除与这个问题无关的内容,但是如果可以像这样解决任何人的困惑,我可以这样做。我认为它看起来已经非常整洁了。至少比我对此的心理概念更整洁。
我是否说过任何帮助将不胜感激?回答者可能会发现自己因其智慧而受到奉承。 Cutout of my schema diagram


背景故事 如果您关心的话,它与问题并不相关。
在改造之前我把它们都放在一个表中(因为我匆忙添加了空白文本),所以空白文本是没有答案的“正常”项目,而空白是没有问题的项目。该应用程序将它们链接在一起。


编辑

在 SO 吐出一些有用的帖子后,我添加了一个答案。我还不是 100% 满意。我一次又一次地尝试为这个设置的常见查询编写 View ,我觉得我必须为数据库地盘的东西提取应用程序逻辑。

最佳答案

如评论中所述,不了解整个故事就很难回答。所以,这里有一个故事和一个模型来匹配。看看您是否可以根据您的示例进行调整。

(外语)语言学校提供考试多个级别语言能力。学校为每种语言的每个级别维护了许多预制的测试 (LangLevelTestNo)。

每个测试都包含几个(许多)问题。每个问题都可以是简单close-text-type。为每个简单问题存储正确答案。为每个密文问题的每个空白存储正确的术语

学生可以参加考试语言水平,并会收到预制的测试之一>。对于每个学生考试,都会维护考试表格,其中存储学生对的每个问题答案考试。与问题一样,答案可能是简单封闭文本类型。 p>

enter image description here

关于sql - 我如何构造我的数据库,以便构成相同 "element"的两个表链接到另一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4846449/

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