CREATE TABLE stop_times
(
trip_id int NOT NULL,
arrival_time time NOT NULL,
departure_time time NOT NULL,
stop_id int NOT NULL,
stop_sequence int NOT NULL,
FOREIGN KEY(trip_id) REFERENCES trips,
FOREIGN KEY(stop_id) REFERENCES stops
);
CREATE TABLE trips
(
trip_id int NOT NULL,
trip_name text NOT NULL,
trip_start time,
trip_end time,
PRIMARY KEY(trip_id)
);
То, что я хотел бы сделать это после того, как я добавить/обновление/удаление (а) запись (ы) в таблице stop_times стол поездки обновит trip_start как мин (ARRIVAL_TIME) для группы trip_ids и trip_end как max (arrival_time) для группы trip_ids.Postgresql Trigger
Почему вы хотите сохранить эту информацию? Его можно легко получить с помощью инструкции SELECT. Одно правило в реляционной базе данных: не хранить данные, которые могут быть получены из других данных. –
Я думал, что это будет быстрее, потому что данные будут периодически обновляться (каждый месяц или 2), а stop_times - относительно большая таблица (около 900 000 строк). – visi0n
Идите с целью взглянуть на это, и только оптимизируйте его, если он действительно слишком медленный. Не «предполагайте» что-то быстрее. Протестируйте его, а затем решите. Btw. что для вас «относительно большое»? –