Skip to content

course (Kurs)

Diese Tabelle repräsentiert einen Kurs, der während eines Schuljahres stattfindet.

Das Attribut cross_class ist eine Kopie des gleichen Attributs des zugeordneten Fachs und dient der schnellen Abfrage. Wenn das Attribut den Wert true enthält, ist der Kurs klassenübergreifend.

Das Attribut school_class_ids enthält die IDs der Schulklassen, welche mit diesem Kurs verknüpft sind. Bei klassenübergreifenden Kursen ist die Liste leer.

Attribute

Die Attribute haben folgende Bedeutung:

AttributTypBeschreibung
cancelledbooleanIst der Kurs abgesagt?
commentstextAnmerkungen
cross_classbooleanIst der Kurs klassenübergreifend?
grade_idintegerFremdschlüssel auf grade
lessons1doubleAnzahl Lektionen im ersten Semester
lessons2doubleAnzahl Lektionen im zweiten Semester
school_class_idsinteger[]Fremdschlüssel auf
school_year_idintegerFremdschlüssel auf school_year
subject_idintegerFremdschlüssel auf subject
teacher_ids1integer[]Fremdschlüssel auf teacher
teacher_ids2integer[]Fremdschlüssel auf teacher
curriculum_idintegerFremdschlüssel auf curriculum

Erzeugung

Die Tabelle wird mit folgendem SQL-Skript erstellt:

sql
create sequence pensen.course_id;
grant usage on sequence pensen.course_id to "pensenmanager";

create table pensen.course (
  id integer not null primary key,
  cancelled boolean not null default false,
  comments text,
  cross_class boolean not null,
  grade_id integer not null,
  lessons1 double precision not null,
  lessons2 double precision not null,
  school_class_ids integer[],
  school_year_id integer not null,
  subject_id integer not null,
  teacher_ids1 integer[],
  teacher_ids2 integer[],
  curriculum_id integer not null,
  foreign key (school_year_id) references pensen.school_year (id) on update cascade,
  foreign key (grade_id) references pensen.grade (id) on update cascade,
  foreign key (subject_id) references pensen.subject (id) on update cascade,
  foreign key (curriculum_id) references pensen.curriculum (id) on update cascade,
);
grant delete, insert, select, update on table pensen.course to "pensenmanager";