他の誰も言及していない別の方法は、2つの日付列に別々のテーブルを使用することです。(再読すると、他に類を見ない@sqlvogelがこれについて言及していることがわかります。コードを例として残しておきます。@ sqlvogelがそれを彼の回答に組み込みたい場合は、私が賛成しましたが、それで問題ありません。後で私の答えを削除してください。)
create table org_users (
org_id integer not null references organizations (org_id),
user_id integer not null references users (user_id),
member_from date not null default current_date,
primary key (org_id, user_id, member_from)
);
create table org_users_member_to (
org_id integer not null,
user_id integer not null,
member_from date not null,
member_to date not null default current_date
check (member_to > member_from),
primary key (org_id, user_id, member_from),
foreign key (org_id, user_id, member_from)
references org_users (org_id, user_id, member_from)
);