Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有Excel导出问题的Access数据库设计(多级)_Excel_Ms Access_Database Design - Fatal编程技术网

带有Excel导出问题的Access数据库设计(多级)

带有Excel导出问题的Access数据库设计(多级),excel,ms-access,database-design,Excel,Ms Access,Database Design,您好,我目前正在从事一个项目,该项目包含每个月的个人信息,我想建立一个或两个表来包含这些信息(我不想为每个月创建一个表)。一个简单的例子是: 一月 学生a 学生乙 二月 学生a 学生b 学生丙 我所做的只是将数据以上述形式导出到excel中,权重、高度列是固定的,但我希望按月份对数据进行聚类,以便数据组织更清晰 请问如何设计数据库以满足上述要求?谢谢 以下是存储信息所需的表格: students id unsigned int(P) name

您好,我目前正在从事一个项目,该项目包含每个月的个人信息,我想建立一个或两个表来包含这些信息(我不想为每个月创建一个表)。一个简单的例子是:

一月

学生a

学生乙

二月

学生a
学生b
学生丙

我所做的只是将数据以上述形式导出到excel中,权重、高度列是固定的,但我希望按月份对数据进行聚类,以便数据组织更清晰


请问如何设计数据库以满足上述要求?谢谢

以下是存储信息所需的表格:

students
    id              unsigned int(P)
    name            varchar(50)

+----+------+
| id | name |
+----+------+
|  1 | John |
|  2 | Mary |
|  3 | Tina |
| .. | .... |
+----+------+
SELECT name, height, weight, year, month
FROM students s
LEFT JOIN measurements m ON s.id = m.student_id
ORDER BY year, month, name
测量
表中,主键由
学生id
年份
月份
组成。
student\u id
也是
students
表的外键

measurements
    student_id      unsigned int(F students.id)-\
    year            unsigned int ----------------(P)
    month           unsigned int ---------------/
    height          unsigned int
    weight          unsigned int

+------------+------+-------+--------+--------+
| student_id | year | month | height | weight |
+------------+------+-------+--------+--------+
|          1 | 2013 |    11 |     70 |    200 |
|          2 | 2013 |    11 |     65 |    130 |
|          1 | 2013 |    12 |     70 |    192 |
|          2 | 2013 |    12 |     65 |    126 |
|          3 | 2013 |    12 |     68 |    140 |
| .......... | .... | ..... | ...... | ...... |
+------------+------+-------+--------+--------+
然后是提取信息的查询:

students
    id              unsigned int(P)
    name            varchar(50)

+----+------+
| id | name |
+----+------+
|  1 | John |
|  2 | Mary |
|  3 | Tina |
| .. | .... |
+----+------+
SELECT name, height, weight, year, month
FROM students s
LEFT JOIN measurements m ON s.id = m.student_id
ORDER BY year, month, name
这将给你:

+------+--------+--------+------+-------+
| name | height | weight | year | month |
+------+--------+--------+------+-------+
| John |     70 |    200 | 2013 |    11 |
| Mary |     65 |    130 | 2013 |    11 |
| John |     70 |    192 | 2013 |    12 |
| Mary |     65 |    126 | 2013 |    12 |
| Tina |     68 |    140 | 2013 |    12 |
+------+--------+--------+------+-------+
这是您想要的数据,按您想要的方式排序。数据的任何进一步格式化取决于您的应用程序