Вы можете использовать уникальное ограничение, чтобы гарантировать, что фиксированное максимальное количество записей может быть вставлено для определенного дня. Например, если N = 5:
CREATE TABLE GAMES (
id_game NUMBER NOT NULL,
id_user NUMBER NOT NULL,
dt_game DATE NOT NULL,
user_game_count NUMBER NOT NULL,
CONSTRAINT max_games_per_day
CHECK (user_game_count BETWEEN 1 AND 5),
CONSTRAINT dt_game_notime
CHECK (dt_game = TRUNC(dt_game)),
CONSTRAINT games_unique
UNIQUE (id_user, dt_game, user_game_count),
);
Ограничение max_games_per_day
означает, что оно может принимать только одно из 5 различных значений. Ограничение dt_game_notime
означает, что мы не будем получать различные значения времени. Наконец, уникальное ограничение гарантирует, что для любой конкретной даты и пользователя они могут вставить только до 5 строк.