Jozef Babjak napsal(a):
Nedokážu si vysvětlit jakým způsobem může fungovat násedující chování aplikace:
[...]
Dokážu si představit nějaké POJO objekty mapované do databázové tabulky přes
xml.
^-- Kazdy problem v IT je mozne riesit pridanim dalsej vrstvy
indirektnosti. Ako uz bolo naznacene, je pravdepodobne, ze tam, kde vy
*predpokladate* POJO objekty, je zjavne nejaka "nie bezna" vrstva
indirektnosti.
No a nebo se to dá řesit bez složité teorie po selsku,
bez vrstev indirekce a mapováni tříd přes XML :-)
Prostě v databázi zavedu tři tabulky
VYROBEK (id PRIMARY KEY, ...)
VLASTNOSTI_VYROBKU (id PRIMARY KEY,
vyrobek_id FOREIGN KEY REFERENCES VYROBEK(id),
nazev_vlastnosti,
typ_vlastnosti
)
HODNOTY_VLASTNOSTI (vv_id FOREIGN KEY REFERENCES VLASTNOSTI_VYROBKU(id),
hodnota_vlastnosti)
a při definici nových vlastností přidávám řádky do VLASTNOSTI_VYROBKU
a při plnění hodnot přidávám řádky do HODNOTY_VLASTNOSTI.
Při zobrazení výrobku pak tahám dotazem
SELECT * FROM VYROBEK v, VLASTNOSTI_VYROBKU vv, HODNOTY_VLASTNOSTI hv
WHERE v.id=vv.vyrobek_id and hv.vv_id=vv.id
a výsledná data si dávám do List<AtributVyrobku> kde
class AtributVyrobku {
String nazevVlastnosti;
TypVlastnosti typVlastnosti;
String hodnotaVlastnosti;
...
}
Pro texty a textarey to stačí samo o sobě, pro radiobuttony, checkboxy
a selectionlisty je potřeba ještě jedna tabulka a třída pro držení
alternativních hodnot.
Makub
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Supercomputing Center Brno Martin Kuba
Institute of Computer Science email: [EMAIL PROTECTED]
Masaryk University http://www.ics.muni.cz/~makub/
Botanicka 68a, 60200 Brno, CZ mobil: +420-603-533775
--------------------------------------------------------------