Devo implementare una tabella dei profili intermedia ora, o aspettare fino a quando / quando mi serve?

0

Tradizionalmente lo schema è molto semplice:

User <- Post

Ho scritto il codice per un modello Profile come intermedio:

User <- ProfileUser -> Profile <- Post

Durante la registrazione per il sito Web, viene creato un User . Un User può creare Profile e più User può essere collegato a Profile tramite ProfileUser .

Motivi per l'implementazione

  • Potenzialmente utile per i clienti più grandi con più dipendenti che hanno bisogno di accedere a Post (s)
  • Per gli utenti casuali / di livello gratuito, il collegamento dei profili può essere reso trasparente, non è necessario conoscere la funzionalità esistente
  • Potrei avere bisogno di questa flessibilità "un giorno nel futuro" per motivi che non ho ancora pensato

Ragioni contro l'implementazione

  • Complica lo sviluppo, il sovraccarico logistico
  • Potrebbero esserci delle spese generali per le prestazioni; Non l'ho profilato, ma mi aspetto che il costo di due nuovi join sia sostanziale.
  • Responsabilità degli utenti che si lamentano che un altro ProfileUser ha fatto qualcosa di sbagliato e incolpano il sito per il controllo delle autorizzazioni primitive (non implementerò autorizzazioni granulari o versioning / cronologia). Se questa funzione non esistesse, la loro unica opzione sarebbe quella di condividere account e la responsabilità sarebbe su di loro.

Una cosa che potrebbe aiutarmi a prendere una decisione: È difficile aggiungere in questa tabella intermedia in un secondo momento? In teoria basterebbe staccare Post da User e aggiungere nuova Profile e ProfileUser tra loro. Non ho idea di come sarebbe questo in SQL, e non so da dove cominciare a cercare o come si chiama questo tipo di operazione. Mi piacerebbe sentire da persone con esperienza nell'esecuzione di questo tipo di operazioni su un sito Web di produzione.

Se è rilevante: sto usando Django e Postgres, non ho esperienza con SQL raw [ancora] e le migrazioni di Django sono ancora per me una magia nera.

    
posta dtgq 16.10.2016 - 00:38
fonte

0 risposte

Leggi altre domande sui tag