sql >> Databáze >  >> RDS >> Mysql

Jaký je nejkompaktnější způsob ukládání diffů do databáze?

Je mnohem snazší uložit každý záznam jako celek než uložit jeho diffy. Pak, pokud chcete rozdíl dvou revizí, můžete jednu vygenerovat podle potřeby pomocí PECL Text_Diff knihovna .

Rád ukládám všechny verze záznamu do jedné tabulky a načítám nejnovější pomocí MAX(revision) , "aktuální" booleovský atribut nebo podobně. Jiní dávají přednost denormalizaci a mají zrcadlovou tabulku, která obsahuje neaktuální revize.

Pokud místo toho uložíte diffy, vaše schéma a algoritmy budou mnohem složitější. Poté musíte uložit alespoň jednu „úplnou“ revizi a více verzí „rozdílů“ a rekonstruovat plnou verzi ze sady rozdílů, kdykoli budete potřebovat plnou verzi. (Takto SVN ukládá věci. Git ukládá úplnou kopii každé revize, nikoli rozdíly.)

Čas programátora je drahý, ale místo na disku je obvykle levné. Zvažte prosím, zda ukládání každé revize v plném rozsahu je skutečně problém.



  1. Dynamicky načítat informace do Twitter Bootstrap modal

  2. Mysql - zakázková objednávka?

  3. Propojení aplikace Android studio s mysql

  4. Vícenásobné počty a skupina podle