gpt4 book ai didi

sql - 数据库规范化——谁是对的?

转载 作者:太空狗 更新时间:2023-10-30 01:41:43 24 4
gpt4 key购买 nike

我的教授(声称多年来对系统开发有着深刻的理解)和我正在争论我们数据库的设计。

举个例子:我的教授坚持这个设计是正确的:(列列表)

Subject_ID
Description
Units_Lec
Units_Lab
Total_Units

等...

注意总单位列。他说必须包括这一栏。我试图解释它是不必要的,因为如果你想要它,那么只需将两者相加即可进行查询。

我给他看了一个我在书上找到的例子,但他坚持认为我在制作我们的系统时不必太依赖书本。同样的事情也适用于与本例类似的情况:

student_ID
prelim_grade
midterm_grade
prefinal_grade
average

他想让我把平均值算进去!无论我走到哪里,我都会发现自己正在阅读使我相信这是违反规范化的文章。如果我需要平均值,我可以很容易地计算出三个等级。他列举了一些场景,包括(“嘿!如果查询被意外删除怎么办?你会怎么做?这就是为什么你需要将它包含在你的表中!”)

我是否需要重建我的数据库(由大约 40 多个表组成)以符合他的要求?我是不是错了,只是忽略了这些事情?

另一件事是他想在付款表中包含总金额,我认为这是不必要的。 (只需计算产品的单价和数量。)他指出,我们需要该列来计算对整个系统管理至关重要的借方和/或贷方,平衡交易需要它。请告诉我你的想法。

最佳答案

你完全正确!归一化的规则之一是减少那些可以通过使用其他属性的值很容易推导出来的属性。即,通过执行一些数学计算。在您的情况下,可以通过简单地添加来获得总单位列。

告诉您的教授,拥有该特定列将显示出明显的传递依赖性迹象,并且根据第三个规范化规则,建议减少这些。

关于sql - 数据库规范化——谁是对的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10768696/

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