0
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表添加/更新/删除(a)记录之后,旅行表将更新trip_start作为min(arrival_time)作为一组trip_ids和trip_end作为trip_id组的最大值(arrival_time)。Postgresql触发器
你为什么要存储这些信息?它可以很容易地使用SELECT语句来检索。关系数据库中的一条规则:不要存储可以从其他数据派生的数据。 – 2012-01-28 00:01:31
我认为它会更快,因为数据只会定期更新(每个月或2次),而stop_times是一个相对较大的表(约900,000行)。 – visi0n 2012-01-28 00:11:20
现在就去看看,只有在真的慢(太慢)时才进行优化。不要“假设”某事更快。测试它,然后决定。顺便说一句。什么对你来说“比较大”? – 2012-01-28 00:15:33