Mysql
 sql >> база данни >  >> RDS >> Mysql

Актуализиране на денормализирани таблици на база данни

Има няколко начина да се справите с тази ситуация:

  1. Можете да използвате задействане на база данни. Това не е опция, независима от базата данни и доколкото знам, поддръжката на RoR за нея не съществува. Ако ситуацията ви не изисква абсолютно никакво несъответствие на данните, това вероятно би бил най-ефективният начин да постигнете целта си, но аз не експерт по база данни.
  2. Можете да използвате пакетна операция за периодично синхронизиране на двете таблици. Този метод позволява на двете ви таблици да се отдалечат и след това периодично синхронизира данните. Ако ситуацията ви позволява да се случи това отклонение, това може да е добър вариант, тъй като позволява на БД да се актуализира в извънработно време. Ако трябва да правите синхронизирането на всеки 5 минути, вероятно ще искате да разгледате други опции. Това може да се оправи от вашия код на ruby, но ще изисква някакъв вид фонова програма (cron, delayed_job, redis и т.н.)
  3. Можете да използвате обратно извикване от вашия модел Rails. Можете да използвате "after_update :sync_denormalized_data" . Това обратно извикване ще бъде обвито в транзакция на ниво база данни (ако приемем, че вашата база данни поддържа транзакции). Ще имате код на ниво Rails, последователни данни и няма нужда от фонов процес за сметка на извършване на две записи всеки път.
  4. Някакъв механизъм, за който не съм се сетил....

Този тип проблеми са много специфично приложение. Дори в рамките на едно и също приложение можете да използвате повече от един от методите в зависимост от изискванията за гъвкавост и производителност.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. XAMPP - Грешка:MySQL изключване неочаквано

  2. Извличане на MySQL родител от най-високо ниво

  3. Как да подредите и групирате MySQL резултати

  4. разделен със запетая низ от избрани стойности в mysql

  5. com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:неизправност на комуникационната връзка