Discriminator

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

V programování slouží discriminator jako identifikátor entity (tzv. tag), který vyjadřuje, o jaký typ entity se jedná na základě předem definovaného výčtu, který určuje samotný systém (například UNION nebo ENUM typ v relační databázové tabulce).

Discriminator se používá pro převod objektového návrhu entit v rámci programovacího jazyka do tabulkové podoby, kdy potřebujeme zachovat informaci o názvu původního typu entity v programovacím jazyce.

Příklad:

Mějme 3 entity reprezentující různé typy produktů v internetovém obchodu, které mezi sebou zároveň definují závislosti pomocí dědičnosti: Například v jazyce PHP můžeme velice jednoduše instancovat objekt Book, která reprezentuje produkt s knihou a přidává informaci o počtu stran a autorovi. Pokud však budeme chtít všechny typy produktů (základní produkt, knihu a telefon) uložit do relační databáze, můžeme vytvořit pouze jednu tabulku product, která bude mít následující sloupce:

* name * description * pages_count * author * system * battery_capacity * discriminator

Sloupec discriminator v tomto případě bude nést hodnoty product, book nebo phone v závislosti na aktuálně uložené entitě. Úkolem knihovny pro obsluhu databáze v konkrétním jazyce (například Doctrine) je pochopit nastavení Discriminatoru a podle toho vytvořit instance správné entity s ohledem na předem definovaný seznam.

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top