【发布时间】:2021-09-22 06:00:40
【问题描述】:
我有一个网络表格,学生可以在其中输入他们的信息和成绩,例如
- 姓名
- 年龄
- 数学成绩
- 西班牙级
- 化学级
这将转换为如下所示的 POST 请求:
POST /grades
{
"name": "Bob",
"age": 17,
"math_grade": "A",
"spanish_grade": "B",
"chemistry_grade": "C",
}
最后,这将通过 django ORM 存储在 SQL 表 grades 中,如下所示:
| Name | Age | Subject | Grade |
|---|---|---|---|
| Bob | 17 | Math | A |
| Bob | 17 | Spanish | B |
| Bob | 17 | Chemistry | C |
到这里为止一切顺利。
当我读到不同的范式(1NF、2NF、3NF)时,上表似乎应该是两个表(student 和grades)甚至可能是三个(student、@987654327 @DIMENSION 表,gradesFACT 表)。
第一季度。如果grades 表真的应该被拆分,我应该在 django ORM 一次对多个表执行 SQL 查询的应用程序级别执行此操作,还是我在这里进行预优化?我是否应该将规范化作为我的数据仓库策略的一部分并保持应用程序表原样?
第二季度。如果我想以如下嵌套格式返回 Bob 的成绩,我将如何在 django 中执行此操作。
GET /grades/Bob
{
"name": "Bob",
"age": 17,
"grades": {
"math": "A",
"spanish": "B",
"chemistry": "C",
}
}
这些看起来似乎很明显的问题,不确定我是否/错过了什么。谢谢!
【问题讨论】: