Consolidatie (MySQL)

Uit De Vliegende Brigade
Ga naar: navigatie, zoeken

Met consolidatie wordt hier bedoeld dat overlappende gegevens uit verschillende tabellen, worden samengevoegd in één tabel, waarbij de brontabellen niet altijd even betrouwbaar zijn.

Verschillende manieren om dit aan te pakken:

Eerst sleutels, dan de inhoud

  • Defineer een tijdelijke doeltabel, met alleen het veld dat later de PK gaat worden, en velden waarover geaggregeerde functies moeten worden toegepast (bv. optellen)
  • Voeg hierin alle gegevens
  • Defineer een tweede tabel, nu wél met de actieve PK
  • Kopiëer alle info uit de tmp-tabel, pas hierbij de aggregaties toe
  • Voeg ontbrekende data in, vanuit de verschillende brontabellen.

Aanvullen, van goed naar slecht

  • Defineer gelijk de doel-tabel
  • Begin met de meest betrouwbare doeltabel om data te kopiëren naar de doeltabel
  • Ga verder met de overige tabellen, van meest betrouwbaar naar minst betrouwbaar. Uiteraard wordt data hierbij niet overschreven, maar alleen aangevuld.

Eerst sleutels, dan veld-voor-veld

Variant op het eerste algoritme:

  • Verzamel eerst de SKU's plus eventuele agreggatie-velden
  • Vul daarna veld-voor-veld in vanuit de verschillende brontabellen, bv. mbv. coalesce

Deze aanpak is meer werk dan de eerste variant, en ik betwijfel of het eigenlijk beter is: Door individuele velden los van de bijbehorende records te kopiëren, krijg je misschien minder betrouwbare data - Hangt waarschijnlijk van de situatie af.

Overloaden van slecht naar goed

Ik weet niet goed hoe ik dit zou implementeren, maar dit is het idee:

  • Begin met de minst betrouwbare data
  • Overload het daarna, waarbij data wordt overschreven ipv. aangevuld.