Lze vytvořit trvalý společný objekt?

MilanL
Člen | 7
+
0
-

Ahoj,
zajímalo by mě zda lze nějakým způsobem vytvořit (asi v cache) společný trvalý objekt, jde mi o rozsáhlejší a komplikovanější téměř neměnnou strukturu – objekt by se aktualizoval jen v případě změny v db – kde mám tabulku, kdy naposledy došlo k aktualizaci vybraných tabulek.
Jedná se o 2 tabulky kde v jedné mám jedinečné názvy a v druhé stromovou strukturu se zanořením až 10 úrovní. zkoušel jsem rekurzivní SQL dotazy a nikdy mi to nefungovalo jak by mělo, tak jsem to řešil vytvořením objektu v sessions, které tím narostlo o cca 20kB v testovacím režimu, kde mám zatím omezený počet (1/20) názvů a úrovní.
Pro představu:

  • v první tabulce je pouze ID a název

    Př. 1-Výroba, 2-Sklad, 3-LinkaA, 4…7, 8-Stroj1, 9-Dokumenty, 10-Návody, 11-SMED (rychlá výměna nástrojů)

  • v druhé tabulce je pak

    ID

    ID_Parent – odkazuje na ID z této (druhé) tabulky

    IDNázvu

    Př. 1–0–2 =>Sklad bez předka

    2–0–1 =>Výroba bez předka

    3–2–3 =>LinkaA předek Výroba

    4–3–8 =>Stroj1 předci LinkaA Výroba

    5–4–11 =>SMED předci Stroj1 LinkaA Výroba

Funguje to tak, že pomocí jednoho ID z druhé tabulky se dostanu k celé té struktuře ať je úroveň zanoření jakákoliv např dokumenty mohou být jak pro celou linkuA (ID=3) nebo i výrobu (ID=2) tak pro jednotlivé stroje (stroj1 ID=4). Takže když budu chtít v jiné tabulce např seznam souborů pro Výroba-LinkaA-Stroj1 stačí mi u vybraných obrázků a dokumentů zadat ID 4,

Sory za román, nenapadlo mě jak to vysvětlit jednodušeji. Za rady předem děkuji.

Ages
Člen | 128
+
0
-

Ahoj,
Mrkni sem https://akki.ca/blog/mysql-adjacency-list-model-for-hierarchical-data-using-cte/
Kdysi jsem s to také řešil a CTE bylo tak rychlé, že jsem žádnou cache nepoužil.