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

MySQL:Eingebettetes JSON vs. Tabelle

EINER der Gründe für die Normalisierung einer Datenbank ist die Verringerung der Redundanz (Ihrer „wiederholbaren Blöcke“)

Ein weiterer Grund besteht darin, "Rückwärts"-Abfragen zuzulassen. Wenn Sie wissen wollten, welches Video am „15 Pike Place“ gedreht wurde, schlägt Ihre JSON-Lösung fehl (Sie müssen auf sequentielles Lesen zurückgreifen und JSON decodieren, was den Zweck eines RDBMS zunichte macht)

Gute Faustregeln:

  • Strukturierte Daten - in Tabellen und Spalten gesteckt
  • Daten, die Teil von Abfragebedingungen sein könnten – in Tabellen und Spalten einfügen
  • Unstrukturierte Daten, von denen Sie wissen, dass Sie sie niemals abfragen werden – in BLOBs, XML- oder JSON-Feldern abgelegt

Verwenden Sie im Zweifelsfall Tabellen und Spalten . Möglicherweise müssen Sie anfangs etwas mehr Zeit aufwenden, aber Sie werden es nie bereuen. Die Leute haben ihre Wahl für JSON-Felder (oder XML, für diese Angelegenheit) immer und immer wieder bereut. Habe ich "wieder" erwähnt?