Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie wichtig sind Einschränkungen wie NOT NULL und FOREIGN KEY, wenn ich meine Datenbankeingaben immer mit PHP kontrolliere?

Du gehst Fehler mit PHP zu machen, 100% garantiert. PHP ist prozedural. Was Sie wollen, sind deklarative Einschränkungen. Sie möchten dem gesamten Stapel sagen:"Dies sind die Einschränkungen für die Daten, und diese Einschränkungen können nicht verletzt werden." Sie wollen nicht viel mit "Schritt 1 ... Schritt 2 ... Schritt 3 ... Schritt 432 ..." als Ihre Methode zum Durchsetzen von Einschränkungen für Daten herumspielen, weil

  • Sie werden es falsch verstehen
  • Wenn Sie es später ändern, werden Sie vergessen, was Sie jetzt getan haben
  • Niemand sonst wird all diese impliziten Einschränkungen so kennen, wie Sie sie jetzt kennen, und dazu gehört auch Ihr zukünftiges Selbst
  • Es braucht viel Code, um Constraints richtig und ständig durchzusetzen - der Datenbankserver hat diesen Code bereits, aber sind Sie bereit, ihn zu schreiben?

Die Frage sollte eigentlich lauten:"Warum sollte ich PHP verwenden, um diese Einschränkungen durchzusetzen, wenn ich es auch mit MySQL machen könnte?"