= Database import The import file has to be a text file (with `.txt` at the end) encoded in UTF-8. It has to *strictly* follow the required format. You can take a look at the file link:example_database_import.txt[] for an example. == Required manipulation on the web interface The following tables can not be imported from a file and have to be manipulated on the web interface. * Semester * Program * Part * User * Assistant * Experiment * Semester Experiment == Optional values If an attribute is optional/nullable and it has no value, then `NULL` (uppercase) has to be written. == How to understand this document === ID None of the mentioned ids in this document is meant as database id. The ids here only refer to the imported instances. The id in the database is assigned automatically. === Table * id -> 0 / 1 / 2 / ... (starts with 0 and has step 1) * attribute -> example1 / example2 / ... (explanation) * ... The type of the attributes can be seen in the drawio file link:DB.drawio[] which can be opened using https://www.diagrams.net/[diagrams.net]. Some attributes have constraints marked also in the drawio file. == Tables === Semester (only one!) * label -> WS / SS * year -> 21 / 22 / ... === Part * id * number -> 1 / 2 / ... * program_label -> BS / MS / BE / ... (for bachelor of science, master of science, bachelor of education, etc.) === Student * student_number * first_name * last_name * uni_email * _contact_email_ (optional) * _bachelor_thesis_ (optional) * _bachelor_thesis_work_group_ (optional) * _note_ (optional) === Group * id * number -> 1 / 2 / ... * program_label === Part Student * student_number * part_id * group_id === Experiment * id * number -> 1 / 2 / ... * program_label === Group Experiment * id * experiment_id * group_id === Appointment * date -> 21.08.2022 * special -> 1 / 0 * group_experiment_id * assistant_email