数据库设计中的常见陷阱与解决方案
1. 关键词和类别处理不当
在数据库设计中,关键词和类别的处理不当会导致一系列问题。例如,当输入数据时,你通常会想到一个项目及其特定的分类或关键词列表。然而,当你准备报告或进行某些分析时,你可能需要从另一个角度看待问题。你经常希望能够看到一个分类及其所有项目的列表或项目数量的统计。例如,你可能会问:“我们的客户中有多少百分比属于高收入阶层?”如果关键词和分类最初没有正确存储,这些报告将变得非常难以制作。
示例:植物数据库
一所大学的系部需要将其应届毕业生的临时成绩整理成适合带去给考官会议的格式。课程内容非常严格,所有学生都学习相同的科目,而在系统计算机化之前,是手工生成类似于图1-6中的报告。这种格式允许轻松比较每位学生在不同科目上的表现,有助于确定荣誉等级的界限。
设计了一个数据库表,与图1-6中的报告完全匹配,每个列都有一个字段。第一年数据库运行得很好。第二年开始出现问题。一些学生被允许用自己选择的论文替换其中一篇。表格被修改以增加选项名称和选项分数的列。随后,一些科目被替换,但必须保留旧的科目,以便那些过去已经选修过的学生使用。表格变得更加杂乱,但它仍然能够处理这些数据。
设计无法处理的是那些考试失败后重新参加科目的学生。需要记录学生完整的学术成绩记录,而表格的设计使得如果一个学生多次参加同一科目,就无法记录超过一个成绩。这个问题直到运营的第二年(也就是第一批学生开始不及格时)才被发现。到那时,已经投入了大量的开发和数据录入工作。解决方案有点奇特,那就是为每个年份创建一个新表,然后运用一些复杂逻辑来从相应的