1) Consider using one
tstzrange
instead of start/end. They're easier to work with and index. 2) Don't store derived values like duration. If start_timestamp or end_timestamp change, duration might not be updated. Instead use a generated column or view.