Mysql
 sql >> Database >  >> RDS >> Mysql

Quanto sono importanti i vincoli come NOT NULL e FOREIGN KEY se controllerò sempre l'input del mio database con PHP?

Stai partendo sbagliare con PHP, garantito al 100%. PHP è procedurale. Quello che vuoi sono vincoli dichiarativi. Vuoi dire all'intero stack:"Questi sono i vincoli sui dati e questi vincoli non possono essere violati". Non vuoi molto in giro con "Step 1 ... Step 2 ... Step 3 ... Step 432 ...", come metodo per imporre vincoli ai dati, perché

  • hai intenzione di sbagliare
  • quando lo cambi in seguito, dimenticherai quello che hai fatto ora
  • nessun altro conoscerà tutti questi vincoli impliciti come li conosci tu ora, e questo include il tuo sé futuro
  • ci vuole molto codice per applicare i vincoli in modo corretto e continuo:il server del database ha già questo codice, ma sei pronto a scriverlo?

La domanda in realtà dovrebbe essere formulata:"Perché dovrei usare PHP per imporre questi vincoli, quando potrei farlo semplicemente con MySQL?"