数据库架构命名约定和常见错误



(https://i.stack.imgur.com/vykv6.png(:

我要求设计一个关系数据库,以保留数据以回答诊所操作查询,例如:

●列出给定日期的每位医生的患者约会。

●当患者响起预约时,给定日期的可用时间插槽。

●检索患者通过邮件服务发送通知的地址。

我有一个与一个关系的数据库模式,如下所示,但是我想知道我是否有任何错误?

ABC(DOC-NAME,DOC GENDER,REGISTRATION_NUM,资格,PAT-NAME,PAT-NAME,DOB,DOB,地址,电话,电话,任命日期,任命,任命时间,类型(>

通常不鼓励使用诸如日期和使用连字符之类的单词?我的设计中还有其他弱点吗?

谢谢

因此,这不是模式或设计。不是为了关系数据库,基于问题的标签,您要寻找的是什么。这就是数据库的ID/值样式的存储定义。如果您正在寻找实际的关系存储,则应通过标准化过程建立这些关系。

例如,让我们从doc-name开始(我个人并不为使用连字符而疯狂,但这不是示波器,所以至少在该注释上,请确保您正在使用的RDBMS都可以支持它们。这个名字,然后你很好(。如果我们仅从数据输入点考虑一下,那么每次使用该医生时,我们都不需要输入医生的名称。相反,我们想从列表中提取它。因此,很明显,我们可以将其分开以外的其他信息。我们的标准化过程是一个开始。我们还可以轻松地注意到患者可能有多个任命的事实。在当前的结构下,我们必须在预约之前重新输入所有患者信息。在另一个地方,我们将其分开。

这个简单的示例还有更多的示例,可以被拆分并归一化。

我建议您阅读有关数据归一化的阅读。我最喜欢这个主题的老师是路易·戴维森(Louis Davidson(。这是他关于这个话题的书。阅读该内容,然后尝试读取您所面临的情况。

我假设这不仅仅是作业。如果是,目前,我会给您一个" F"。如果不是这样,您应该追踪某人,让您使用此数据库设计。您将无法迅速阅读路易斯关于该主题的书,甚至在任何合理的时间内都扭转了艰难的工作设计。

我必须第二章,这根本不是关系设计。停下来问问自己,例如,如果史蒂文·阿罗(Steven Arrow(必须休假并更新他的日程安排,会发生什么。您需要非常谨慎地更新数据库,以免您重新分配他所有的患者。

总共花了5分钟,我至少看到:医生表,患者表,可能是一个公开约会时间的表(顺便说一句,比您想象的要难一些,因此您必须考虑一下如何处理该问题,并在桌子上阅读一些时间表(。<<<<<<<<<<<<

那是针对初学者的。我可能会将患者的电话号码打破到自己的桌子上。为什么?那么,您想要几列的电话号码?1?如果他们有工作和家庭电话怎么办?还是工作,牢房和家?以及更多。

您正在寻找的概念是正常形式。您不需要过分,但通常3NF是正确的。

最新更新