Обратился клиент на фриланс бирже KWORK, с задачей по MySQL, такого содержания:
Опишите базу данных для школьного кабинета, в рамках которой можно фиксировать, кто и в какое время сидел за той или иной партой.
Место ученика — это ряд, парта, вариант.
В течение одного дня у разных классов бывает несколько уроков.
Создайте минимум 3 таблицы: «Кабинет», «Ученик» и сводная таблица, где отображаются парты и ученики.
Используйте поля «началоурока» и «конецурока» с типом данных TimeStamp.
Давайте разбираться.
SQL (язык структурированных запросов) — это предметно-ориентированный язык, используемый в программировании и предназначенный для управления реляционными базами данных и манипулирования ими. Позволяет пользователям определять, манипулировать и контролировать данные в базе данных.
Система управления базами данных (СУБД) – это комплекс программно-языковых средств, позволяющих создать базы данных и управлять данными. Иными словами, СУБД — это набор программ, позволяющий организовывать, контролировать и администрировать базы данных.
Синтаксис языка может незначительно отличаться в зависимости от того, какую СУБД вы используете (MySql, SQLite, PostgreSQL и тп.).
Для создания базы данных школьного кабинета, где можно отслеживать, кто сидел за определенной партой, мы можем разработать следующую структуру с тремя основными таблицами: Кабинет, Ученик, и Место_за_партой. Далее приведена концепция и SQL инструкции для создания такой структуры базы данных, а так же реализация кода.
Таблица Кабинет
Основное хранилище информации о кабинетах.
Атрибуты таблицы:
- id (INT, первичный ключ)
- номер_кабинета (INT)
- название_кабинета (VARCHAR)
Таблица Ученик
Хранит данные об учениках.
Атрибуты таблицы:
- id (INT, первичный ключ)
- имя_фамилия (VARCHAR)
- класс (VARCHAR)
Таблица Место_за_партой
Связующая таблица, отображающая распределение учеников по партам в течение уроков.
Атрибуты таблицы:
- id (INT, первичный ключ)
- id_ученика (INT, внешний ключ)
- id_кабинета (INT, внешний ключ)
- ряд (INT)
- парта (INT)
- вариант (INT)
- начало_урока (TIMESTAMP)
- конец_урока (TIMESTAMP)
Теперь переведем выше описанные схемы на язык SQL и создадим базы:
CREATE TABLE Кабинет (
id INT PRIMARY KEY AUTO_INCREMENT,
номер_кабинета INT NOT NULL,
название_кабинета VARCHAR(50) NOT NULL
);
CREATE TABLE Ученик (
id INT PRIMARY KEY AUTO_INCREMENT,
имя_фамилия VARCHAR(50) NOT NULL,
класс VARCHAR(10) NOT NULL
);
CREATE TABLE Место_за_партой (
id INT PRIMARY KEY AUTO_INCREMENT,
id_ученика INT,
id_кабинета INT,
ряд INT NOT NULL,
парта INT NOT NULL,
вариант INT NOT NULL,
начало_урока TIMESTAMP NOT NULL,
конец_урока TIMESTAMP NOT NULL,
FOREIGN KEY (id_ученика) REFERENCES Ученик(id),
FOREIGN KEY (id_кабинета) REFERENCES Кабинет(id)
);
Эти таблицы позволят фиксировать, какие ученики сидели за определенными партами в конкретном кабинете в определенные временные интервалы.
Файл sql. Результат решения задачи можно посмотреть >>> тут.
Кстати, на KWORK можно не только зарабатывать, но и покупать услуги. Репетиторы, переводчики, дизайнеры, ИТ и SEO-специалисты всегда готовы упростить вам жизнь, выполнив ваш заказ.
Было полезно? Ставьте лайк и подписывайтесь на канал.
- ArrayFormula в Google таблицах
- Выпадающие списки в Google таблицах
- Бесплатный MS Office?
- Самая полезная клавиша при работе в MS Office
- Быстрая блокировка Windows и macOS
- Очистка Windows без программ