Hlavní navigace

Názor k článku Nový pohľad na tradičný relačný model od anonym - Čo poviete nato, keby Bandicoot riešil tento problem...

  • Článek je starý, nové názory již nelze přidávat.
  • 10. 6. 2011 9:38

    bez přezdívky

    Čo poviete nato, keby Bandicoot riešil tento problem nasledujúcim spôsobom?

    rel Zamestnanec {
    id: int,
    meno: string,
    manager: int,
    }

    vsetci: Zamestnanec;

    op iteruj(z: Zamestnec, m: rel{manager: int}): Zamestnanec
    {
    if (ids == empty)
    return empty;

    priamy := z * m;
    manageri := priamy project(id) rename(manager = id);

    return priamy + iteruj(z, manageri);
    }

    fn VsetciPodriadeni(n: {meno: string})
    {
    manageri := (vsetci * n) project(id) rename(manager = id);

    return iteruj(vsetci, manageri);
    }

    V riešení používam operátory a inline deklarácie relačných typov, ktoré neboli v článku vysvetlené :(
    Operátory navyše zataiľ nie sú implementované, ale sú na pláne pre najbližšiu verziu.

    Vyzerá to tak, že tento problém je možné vyriešiť, len ak máme ako zapísať cyklus (napr. rekurziou) a podmienky (napr. pomocou if).