FastAPI + PostgreSQL 16. KYC, issue sistemi, permission/group yönetimi, session yönetimi, API client auth (kışla kapısı), officials/persons CRUD. Migration 0001–0013 dahil.
30 lines
1.3 KiB
SQL
30 lines
1.3 KiB
SQL
-- Lokasyon ayrılma kayıtları
|
||
-- Bir lokasyonun hangi kaynaktan ayrıldığını tutar.
|
||
-- Tek kaynaktan ayrılma (Osmaniye←Adana) veya
|
||
-- çok kaynaktan birleşme (Elbistan ili←KMaraş+Malatya+Kayseri) için çoklu satır.
|
||
CREATE TABLE location_splits (
|
||
id BIGSERIAL PRIMARY KEY,
|
||
location_id BIGINT NOT NULL REFERENCES locations(id) ON DELETE RESTRICT,
|
||
source_id BIGINT NOT NULL REFERENCES locations(id) ON DELETE RESTRICT,
|
||
effective_at DATE NOT NULL,
|
||
notes TEXT,
|
||
UNIQUE (location_id, source_id, effective_at)
|
||
);
|
||
|
||
CREATE INDEX idx_location_splits_location ON location_splits(location_id);
|
||
CREATE INDEX idx_location_splits_source ON location_splits(source_id);
|
||
|
||
-- Lokasyon birleşme kayıtları
|
||
-- Bir lokasyonun hangi hedefe birleştirildiğini tutar.
|
||
-- Beyoğlu+Şekeroba→Yeniİlçe gibi çok kaynak tek hedef için çoklu satır.
|
||
CREATE TABLE location_merges (
|
||
id BIGSERIAL PRIMARY KEY,
|
||
source_id BIGINT NOT NULL REFERENCES locations(id) ON DELETE RESTRICT,
|
||
target_id BIGINT NOT NULL REFERENCES locations(id) ON DELETE RESTRICT,
|
||
effective_at DATE NOT NULL,
|
||
notes TEXT,
|
||
UNIQUE (source_id, target_id, effective_at)
|
||
);
|
||
|
||
CREATE INDEX idx_location_merges_source ON location_merges(source_id);
|
||
CREATE INDEX idx_location_merges_target ON location_merges(target_id);
|