Вопрос задан 10.12.2025 в 23:45. Предмет Информатика. Спрашивает Петрова Анна.

БД содержит информацию об учениках школы : фамилия класс балл за тест балл за практическое задание общееиколичество балов . какова типа должно быть поле общее количество ббалов?

Перейти к ответам

Ответы на вопрос

Отвечает Кот Полина.

Кратко: числовое, лучше вычисляемое (не хранить отдельно).

Развернуто:

  1. Тип данных

  • Если баллы всегда целые → INTEGER/INT.

  • Если возможны дробные (0,5; 4,75 и т.п.) → фиксированная точность: DECIMAL(p,s) (напр., DECIMAL(5,2)), а не FLOAT, чтобы избежать ошибок округления.

  1. Лучше не дублировать данные
    общее_количество_баллов — это сумма «балл за тест» + «балл за практическое». Чтобы не хранить избыточность и не ловить рассинхронизацию, задайте его как вычисляемое поле (generated/virtual column) или рассчитывайте в запросе.

Примеры:

PostgreSQL (через вычисление в запросе):

sql
SELECT фамилия, класс, балл_тест, балл_практика, (балл_тест + балл_практика) AS общее_количество_баллов FROM ученики;

MySQL (сгенерированная колонка):

sql
CREATE TABLE ученики ( id INT PRIMARY KEY, фамилия VARCHAR(50), класс VARCHAR(10), балл_тест DECIMAL(5,2) NOT NULL, балл_практика DECIMAL(5,2) NOT NULL, общее_количество_баллов DECIMAL(6,2) GENERATED ALWAYS AS (балл_тест + балл_практика) STORED );
  1. Ограничения (желательно):

  • Проверки на неотрицательные значения и верхние границы:

sql
CHECK (балл_тест >= 0 AND балл_практика >= 0)

(и при необходимости <= максимуму за каждый компонент).

Итого: выбирайте INT, если только целые; DECIMAL(p,s), если нужны дроби. Оптимально сделать «общее количество баллов» вычисляемым числовым полем, а не отдельным хранимым значением.

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос