Jak to vypadá v databázi...
Tabulka Proxy:
- Sloupec OID představuje „primární klíč“ a pomocí něho je provedeno hierarchické propojení tabulek (dědičnost). Jednoznačně identifikuje objekt.
- Vidíme, že sloupec STATE není vyplněn. Je to proto, že tento sloupec je vyplněn vždy pouze v té tabulce, která odpovídá typu objektu.
- Sloupec CLASS obsahuje název třídy objektu. Pokud tedy máme k dispozici pouze objekt „Proxy“ a neznáme jeho skutečný typ, lze jej odsud zjistit. To je také primárním posláním této tabulky. Nic nám ovšem nebrání vytvořit objekt přímo typu „Proxy“. Jeho záznam by potom ležel pouze v této tabulce.
Tabulka Osoba:
- Kromě sloupců OID a STATE zde vidíme sloupce, odpovídající vlastnostem definovaným ve třídě „Osoba“.
- Ani zde není sloupec STATE vyplněn – žádný objekt nebyl vytvořen jako typ „Osoba“.
- Vlastnost „Portret“ jsme v našem příkladu nepoužívali.
- Vidíme, že sloupce „Otec“ a „Matka“, odkazují na příslušné objekty prostřednictvím jejich OID („cizí klíče“).
Tabulka Muz:
- V této tabulce jsou uvedeny pouze ty objekty, které byly vytvořeny jako typ „Muž“.
- Vidíme, že je zde vyplněn sloupec STATE. Tento sloupec obsahuje GUID, který je změněn na nový pokaždé, když je na objektu provedena metoda „Update“. Zde se při čtení objektu zjistí, jestli je v Cache aktuální záznam (hodnota STATE v Cache a v databázi se shoduje). Pokud je záznam v Cache aktuální, použije se (z databáze se načte pouze záznam z této tabulky – právě kvůli zjištění hodnoty STATE) . Pokud záznam v Cache aktuální není, načte se celá hierarchie propojených tabulek dle dědičnosti a Cache se aktualizuje.
- V této tabulce jsou sloupce, odpovídající vlastnostem, kterými třída „Muz“ rozšiřuje třídu „Osoba“. Jsou to sloupce „Povolani“, „Vousy“ a „Plat“, které jsme v našem testu zatím nepoužili.
Tabulka Zena:
- V této tabulce jsou uvedeny pouze ty objekty, které byly vytvořeny jako typ „Zena“.
- Vidíme, že i zde je vyplněn sloupec STATE (viz. výše).
- V této tabulce jsou sloupce, odpovídající vlastnostem, kterými třída „Zena“ rozšiřuje třídu „Osoba“. Jsou to sloupce „Rozena“ a „ObvodPasu“, které jsme v našem testu zatím nepoužili.
Tabulka Partnerstvi:
- Tabulka „Partnerstvi“ je vazební a obsahuje pouze dva sloupce, odkazující na OID příslušných svázaných objektů.