我阅读了关于数据库结构和规范化的内容,并决定在我的学习内容中重新构建数据库,以减少冗余。
我可以学习不同类型的条目。 差距文本 /完整填充测试(一个文字,多个差距)和简单的已知 - 未知(一个问题,一个答案)类型。
现在我有点发脾气了:
clozetests
表中)user_gaps
类似于user_terms
,因为当谈到表格user_terms_answers
时,我会处于相同的腌制中。我提出了我的架构的纸板剪裁拼贴。我没有删除与这个问题无关的东西,但如果任何人的困惑可以像这样纠正,我就能做到。我觉得它看起来已经超级整洁了。至少比我的心理概念还要整洁 我是否说过任何帮助都会受到高度赞赏?答案者可能会发现自己被他们的智慧所吸引。
背景故事如果你关心,这与问题无关 在重塑之前,我把它们都放在一张桌子上(因为我匆忙地添加了差距文本),因此差距文本是没有答案的“正常”项目,而没有问题的项目之间存在差距。应用程序将它们链接在一起
在咳出一些有用的帖子之后我添加了一个答案。我还不是100%满意。我尝试为这个设置编写常见查询的视图,我觉得我必须为数据库草皮拉出应用程序逻辑。
答案 0 :(得分:2)
正如评论中所提到的,如果不了解整个故事,很难回答。所以,这是一个故事和模型匹配。看看你能否适应这个例子。
(外国)语言学校为语言熟练程度的级别提供考试。学校为每个语言(LangLevelTestNo
)的每个级别维护了许多预先制作的测试。
每个测试包含多个(很多)问题。每个问题可以是简单,也可以是 close-text-type 。为每个简单问题存储正确答案。为每个关闭文字问题的每个差距存储正确的字词。
学生可以考试获得语言水平,并获得一项预先制作的考试。对于每个学生考试,会保留考试表,为的每个问题存储学生答案考试即可。与问题一样,答案可能是简短文字类型的简单。
答案 1 :(得分:1)
在编辑我的问题之后,一些Stackoverflow开始将正确的问题与我联系起来。
我知道这是一个常见的问题,但我真的无法找到它,我想是无法提出正确的搜索字词。
以下主题解决了类似的问题,我将尝试将该逻辑应用于我自己的设计。他们都建议为项目添加更高级别的描述(在我的例子中,术语和差距)。这是有道理的,并反映了我的应用背后的逻辑。
一旦我应用了这个,我将使用我编辑的架构回发。它确实看起来更优雅。