Ahoj,
jestli to dobře chápu, pak Type je nějaký číselník

public class Type {
    long id; // umely klic
    String code; // prirozeny klic
}

Tedy jde o to, jestli kód větvit podle umělého klíče nebo přirozeného. V
praxi jsme se setkal s oběma přístupy:

- větvení podle umělého klíče "id" - nemusí se načítat záznam Type, stačí
mít Record.type_id. Je ale potřeba zajistit stejný umělý klíč na všech
prostředích (vývoj, test, produkce). Což může být někdy trochu problém.

- větvení podle přirozeného klíče je více robusní, není zde problém se
synchronizací prostředí. Ale musí se načítat (join, select navíc) i z
tabulky typu. Případně se načítání dá vyhnout použitím cache (Hibernate 2nd
level cache).

Já bych spíše použil přístup přes přirozený klíč s využitím Hibernate 2nd
level cache. Většinou dávám do aplikace nějaké tlačítko pro administrátora
pro mazání Hibernate 2nd level cache pro administrátora pro případ, kdy se
DB tabulky mění mimo aplikaci.



Ondra Medek

2015-04-17 12:41 GMT+02:00 Miroslav Paulfranc <paul...@seznam.cz>:

> Zdravím všechny přítomné
> Měl bych spíše obecnější dotaz, který nesouvisí pouze s Javou, nicméně
> předpokládám, že i při psaní kódu v Javě podobnou věc velmi často řešíte.
>
> Dejme tomu, že máte databázové objekty, u kterých chcete nějaké číselné
> identifikátory (autoincr., identity..,) a máte např.nějaký objekt typu
> Record a ten je nějakého typu, např. Type, takže databáze s 2 tabulkami
> Record a Type (přičemž každý záznam typu Record má referenci na Type).
>
> Pak chcete záznamy typu Record v aplikaci nějak zpracovávat podle toho,
> jakého jsou Typu.
> Máte např. nějaký přepínač (switch(...)), který něco dělá s Recordem podle
> jeho Typu.
>
> Používáte v přepínači klíč Typu, nebo si vytváříte nějaké speciální pole
> (něco jako TYPE_CODE), podle kterého pak záznamy v aplikaci zpracováváte?
> Tj. v přepínači nebo nějakém if-u bude if(type.getId()==něco) , nebo radši
> použijete nějaký k tomu určený atribut?
>
> Napadají mě důvody pro použití i nepoužití prvního i druhého způsobu; máte
> prosím někdo nějaký tip, proč preferovat přístup s klíčem nebo nějaký jiný
> přístup, ideálně odkaz na nějaké články, které by se tímto zabývali,
> případně jak to řeší nějaké "populární" aplikace?
>
> Předem děkuji za tipy.
>
> S pozdravem
> M.Paulfranc
>
>
>

Odpovedet emailem