22 lines
1.1 KiB
SQL
22 lines
1.1 KiB
SQL
-- M12 — Nessuno si vota da solo, nemmeno parlando con PostgREST.
|
|||
|
|
--
|
||
|
|
-- `pagelle_voti` ha il vincolo `pagelle_no_autovoto` fin dalla v1.0. Le altre due votazioni
|
||
|
|
-- no: l'MVP non escludeva l'auto-voto nemmeno in interfaccia (bastava toccare il proprio
|
||
|
|
-- nome nell'elenco), i badge social lo escludevano solo lì. M11 (DD-023) garantisce che il
|
||
|
|
-- voto sia firmato con il proprio `votante_id`, ma non dice niente su chi viene votato:
|
||
|
|
-- eleggersi MVP da soli restava a un POST di distanza, e il titolo finiva in
|
||
|
|
-- `mvpVintiPerGiocatore()` come qualsiasi altro.
|
||
|
|
--
|
||
|
|
-- Le righe già esistenti che violano la regola vanno cancellate prima del vincolo,
|
||
|
|
-- altrimenti l'ALTER fallisce: sono voti che non sarebbero mai dovuti esistere, non dati da
|
||
|
|
-- conservare. In locale non ce n'era nessuna.
|
||
|
|
|
||
|
|
DELETE FROM public.mvp_voti WHERE votante_id = votato_id;
|
||
|
|
DELETE FROM public.badge_social_voti WHERE votante_id = votato_id;
|
||
|
|
|
||
|
|
ALTER TABLE public.mvp_voti
|
||
|
|
ADD CONSTRAINT mvp_no_autovoto CHECK (votante_id <> votato_id);
|
||
|
|
|
||
|
|
ALTER TABLE public.badge_social_voti
|
||
|
|
ADD CONSTRAINT badge_social_no_autovoto CHECK (votante_id <> votato_id);
|