Brauche Hilfe - Redundanz (eigentlich)

  • Meine Tabelle 1 beinhaltet eine eideutige id sowie Vater(id) und Mutter(id) und eine berechnungsid, die sich jeweils aus Vaterid und Mutterid zusammensetzt (Beispiel Vater ist id 15 und Mutter id 28 -> 15_28 ).
    Eine zweite Tabelle soll diverse Berechnungen für die ids enthalten, wobei ich für eine bestimmte Berechnung auf jeden Fall einen Wert des Vater und einen der Mutter benötige (es gehr hier um einen Blutwert der sich berechnet aus ( (Vaterwert + Mutterwert) /2) .
    Bei gleichen Eltern wären das x-Zeilen, die sich wiederholen würden (sorry - ist eine Stammbaumdatenbank für Hunde).
    Nehme ich nur die berechnungsid, wären die Daten zwar jeweils einmalig aber komplizierter in der Abfrage, da ich dann dort immer bis zu den Großeltern müsste um die Werte für die Eltern zu bekommen....
    Wobei für die eigentliche Ausgabe des jeweiligen Hundes schon etliche Tabellen "gejoint" werden, die neuen kämen noch obendrauf

    Wie löse ich die zweite Tabelle am sinnvollsten? Mit der Redundanz oder mit der Abfrage?
    Wir sprechen hier von 30000 Einträgen in der ersten Tabelle....

    • Offizieller Beitrag

    Hi,

    Ich habe leider nicht ganz verstanden, was Du am Ende möchtest, aber evtl. hilft es Dir, dass Du aus Deiner "berechneten" Id beide Teile direkt in den Abfragen verwenden kannst:

    Code
    // Beispiel: Vater: 15, Mutter: 25, berechnet: 15_25
    
    
    // Ermitteln der VaterID als Integer, hier: 15
    cast( substring_index(`berechneteID`, '_', 1) as int ) as VaterId
    
    
    // Ermitteln der MutterID als Integer, hier: 25
    cast( substring_index(`berechneteID`, '_', -1) as int ) as MutterId


    Diese Funktionen kannst Du an jeder beliebigen Stelle Deiner Abfrage/n einsetzen, wo die berechnete Id bekannt ist.

    Gruß Arne