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 > > >