加入收藏 | 设为首页 | 会员中心 | 我要投稿 瑞安网 (https://www.ruian888.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

数据库设计 – 我的数据是否已标准化?

发布时间:2021-02-06 00:04:46 所属栏目:MsSql教程 来源:网络整理
导读:我正在制作一个简单的测验数据库,其中一个问题有一个答案和一个或多个图像文件,属于一个子主题,而该子主题又属于一个主题.此外,每个组可能属于三个级别之一. 这就是我设置数据库的方式: QUESTION-------------------question_id pkquestion varcharanswer va

>使用识别父母(和祖父母)的复合键优于使用ID的一个原因是,例如.当你只需要问题和主题中的列时,你不必从Subtopic中选择SELECT,你可以直接从Question获得TopicCode;而对于ID,你被迫从Subtopic中选择,这不是报告要求的一部分,它是由于糟糕的关系建模造成的;未能实现识别关系,意义重大.只有一个原因是数据堆只有ID作为PK(作为FK携带)比标准化关系数据库执行更多的工作.

>因为有关表格简单而且很小,这可能不是证明关系密钥/ IDENTITY列限制的优越性的好例子;考虑任何大的祖父母::父::子表.
>证明这种优越性/局限性的一个更好的例子,值得考虑的是希望进一步讨论这个问题的任何人,是Data Model from my Advanced Course,因为这个问题是明确解决的.

>另一个原因是失去了意义.例如.用户可以简单地选择TopicCode,SubtopicCode,Question FROM Question,并理解结果集.

对评论的回应2

Progressed Data Model 101102

对评论的回应3

我不明白你如何使用相同的图像文件与不同的问题?

简单的例如. “命名一只不会飞的鸟”和“什么是鸸”都可以使用相同的Emu照片.这是我在上面主帖中的(1)假设.该模型允许它通过在FileName上提供非唯一索引.

您是否应在问题表中包含Media.FileName外键并从Media表中删除QuestionId?

好吧,不.我建模的方式有几个优点.如果它在问题表中,那么一些大药水的时间,它将是空的.你需要一个Filename索引来搜索它们;看它是否被使用;或不;等等.这意味着我们无法索引FileName列(或者我们可以索引它,但由于Nulls索引会很慢).现在它被建模为:

>“选项”或问题的子类型(具有图像的子类型)
>没有空
>快速非唯一索引

它可以设置为图像库(唯一索引).我们知道一个问题可以有零对一的图像.您可以告诉我们您的决定,我将更改模型:

>图像是唯一的文件名;它们只能用于一个问题
>图像是唯一的文件名;它们可用于多个问题

那是什么样的关系? 1 :: 1?

是.媒体结束是“optonal”.确切地说:一个问题有零或一个媒体.因此,“可能有”是动词短语或关系的标题.

该模型以“自然”的层次结构为基础:父母高于儿童;子类型在同一水平上.

看起来不像其他n :: n或1 :: n关系.

没有n :: n关系. (在逻辑级别有一个;它在物理级别实现为关联表.)

**为什么在QuizQuestion表中包含Answer字段?*

您想在哪里存储用户的答案?

看,你需要Quiz和QuizQuestion表;他们之前是有效的实体,你当时没有看到,但你现在做的.

主题和子主题之间的关系在子主题表中定义.在问题表中,您已包含TopicCode和SubtopicCode.你说(如果我没记错的话)包括TopicCode是好的,因为我可以直接从Question表中访问Topic而不加入Subtopic表.

是.按照上面的(1.Subtopic).

但是,根据您的模型,每当我向DB输入新问题时,我都应该选择一个主题和一个子主题[对于问题,从现有列表中].

嗯,无论如何你必须这样做;该模型只是执行它.我理解(根据数据)这就是你所需要的. One Suptopic可以属于多个主题.所以你必须给它一个Topic和一个Subtopic(特定的组合).

该数据库如何确保子主题属于Subtopic表中描述的某个主题?

你没有看到吗?你能看到Subtopic表已经提供了特定的[无论你插入什么] Topic :: Subtopic组合……而不是其他组合?好的,所以当你添加一个新的问题,并给它一个主题和子主题(这是SubTopic的主键,以及问题中的外键)时,数据库将强制执行FK,使得只有一个主题的组合: :可以使用SubTopic中存在的子主题.

这是对良好自然关系键的力量的一个小洞察.

这是一个良好的关系模型的美妙之处:它提供了来自单个[正确建模]结构的许多要求.

对评论的回应4

Progressed Data Model 101103

Progressed Data Model 101109

IDEF1X Notation

(编辑:瑞安网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读