Как создать школьную базу данных за несколько лет? - PullRequest
0 голосов
/ 12 мая 2018

Я создаю ложную школьную базу данных, у меня есть базовая модель на бумаге, но потом, когда я подумал о разных датах и ​​о том, как создать связь между семестрами / четвертями или даже годами, вещи стали чрезвычайно сложными, потому что это неимеет смысл иметь один и тот же класс в моей таблице классов в несколько строк только с разными датами.это было бы странно, я прав?Я выполнил быстрый поиск в Google по своей проблеме и в основном получил метод, называемый измерением даты для моей базы данных.Даже не уверен, что это то, что мне нужно.

Практически все, что мне нужно, - это организовать / настроить отношения между моими таблицами для хранения нескольких лет похожих данных, то есть: класса с тем же идентификатором, но просто другимдаты, разные студенты, которые появляются только тогда, когда мне нужен определенный год или все годы, если требуется.

Банкомат, моя схема выглядит следующим образом.

students --table with all students
------------
student_id serial
first_name varchar(20)
last_name archer(20)

class -- bridge table 
------------
class_id  integer
class_name text
student_id integer
grade   varchar(2)

classes --table with all classes
------------
class_id serial
dept_id integer
class_name text

student_history --bridge table with a calander?
------------------
class_id integer
class_name text
grade    varchar(2)

1 Ответ

0 голосов
/ 13 мая 2018

Я бы хотел что-то вроде этого:

-- this holds the students
create table student (id, name);

-- this holds the courses (for example, "Intro to CS", which is
-- offered every year)
 create table course (id, department_id, name);

-- this table shows what studends took which courses in which 
-- semesters, and what grade they got.  Because you have this, you
-- don't need a history table
create table enrollment (student_id, course_id, semester, grade)

Может быть сложнее, если вы хотите хранить такие вещи, как «кто учил класс», но это решает вашу насущную потребность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...