Abbiamo una tabella degli account in un DB Postgres che ha un indice univoco su user_id e product . Gli utenti possono avere molti account, non c'è una tabella di prodotti. Occasionalmente gli utenti creeranno un account accidentalmente e dovremo aggiungere quell'account al loro record User originale, dopo aver raccolto alcune informazioni su di esso che non possiamo semplicemente lanciare.
A causa dell'indice univoco su product e user_id , dobbiamo eseguire qualche serio collegamento / scollegamento sul record Account e registrare i dati da un record account in un campo JSONB sull'altro record prima di connetterti fino al corretto record User .
Abbiamo una colonna deleted_at nella tabella Account che viene utilizzata moderatamente e ho proposto di aggiungerla all'indice (user_id, product_id) . In questo modo, qualsiasi record che ha NULL deleted_at per un dato user_id, product_id è l'account "attivo" e gli account possono essere contrassegnati come deprecati / inattivi semplicemente impostando un deleted_at .
Ciò richiederebbe alcune riscritture nelle nostre ricerche, ma non sarebbero necessariamente estese, perché il nostro ORM fornisce una funzionalità di ambito che possiamo applicare a tutte le query.
Ho ottenuto un respingimento sull'idea, ma nulla ha riguardato l'impatto sulle prestazioni o gli inconvenienti tecnici, solo affermazioni sulla falsariga di "Le persone lo fanno davvero?" o "Non l'ho mai visto prima". Giuro che ho visto le aziende farlo, ma sarebbe difficile fornire prove.
Qualcuno può fornire una critica alle prestazioni o ai modelli di questo approccio? Qualcuno ha visto questo tipo di approccio? Se no, hai mai risolto questo tipo di problema?