Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Petr Žlebek
Neregistrovaný
Avatar
Petr Žlebek:9.12.2013 9:56

V našem informačním systému máme několik modulů (Obecný, Ekonomika, Mzdy, Personalistika...). Obecný modul je využívaný všemi ostatními. Nejsou vazby mezi ostatními moduly (Ekonomika nereferencuje Mzdy). S několika třídami jsou ale problémy co se týká zakládání.
Řekněme, že máme třídu Osoba, která patří do obecného modulu jelikož je využívána ve všech modulech. Třídu Osoba téměř všechny moduly potřebují o něco svého specifického rozšířit. Mzdy o plat osoby, Majetek o seznam půjčeného majetku...
Jelikož například mzdy jsou agendou modulu mezd, tak rozšíření osoby o mzdu patří do modulu Mezd.
Existuje pak formulář, ve kterém se editují osoby a to přes všechny pohledy (obecný, ekonomický, personální...)
Pro to abych mohl takhle složitou třídu osoba z mnoha specifickými rozšířeními editovat mám několik možností.

  1. Vytvořit speciální modul, něco jako Sdružující modul. Tento modul bude všechny ostatní moduly referencovat a tak můžu vytvořit třídu MegaOsoba, která bude mít všechny vazby zachycené.
  2. Formulář pro editaci osob vytvořit dynamicky, tedy že seskládá jednotlivé editační formuláře z jednotlivých modulů (obecný, mzdy, majetek....) a pak nějak transakčně bude jednotlivé rozšíření ukládat. Napřed obecné informace, pak informace o mzdě, majetku...

Vidíte ještě nějaké jiné řešení?

 
Odpovědět
9.12.2013 9:56
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na
David Hartinger:9.12.2013 10:33

Mně připadá divné, že mzdy rozšiřují osobu. Spíše bych si udělal objekt mzda a ten by měl uložené ke které osobě se váže.

Nahoru Odpovědět
9.12.2013 10:33
You are the greatest project you will ever work on.
Avatar
Petr Žlebek
Neregistrovaný
Avatar
Petr Žlebek:9.12.2013 10:57

Děkuju za reakci.
Popsal jsem to zjednodušeně ale tak to v našem IS je.
Často existuje dvojí pohled na některé entity. Například na vztah, že Osoba má půjčený nějaký matek se můžete dívat ze dvou pohledů. Jeden je právě, že se najdete osobu a s ní se zobrazí i evidenci půjčeného majetku. Druhý je pak nějaký formulář Majetku, kde se eviduje mj. co se které osobě půjčilo.
Co se týká vámi zmiňované mzdy, tak jsou u osoby zobrazovány evidenční listy důchodového pojištění, atd.

 
Nahoru Odpovědět
9.12.2013 10:57
Avatar
Odpovídá na
Neaktivní uživatel:9.12.2013 21:32

V tom by neměl být problém - taková tabulka (v db) zapůjčení může mít více cizích klíčů k osobě (na 1 item v db) 1 Sloupec kdo půjčil (Veritel_OsobaID) a 1 sloupec komu půjčil (Dluznik_OsobaID) - při dobrém datovém návrhu je pak poměrně jednoduché vytáhnout z db potřebné údaje...

Nahoru Odpovědět
9.12.2013 21:32
Neaktivní uživatelský účet
Avatar
Petr Žlebek
Neregistrovaný
Avatar
Petr Žlebek:10.12.2013 9:04

Na úrovni databáze jsou reference již vyřešené pomocí klíčů. Pracuji nad již navrženou databází a snažím se existující Windows aplikaci vytvořit v .NETu objektově. Bojuju právě s objektovým návrhem, konkrétně jak zachytit takové komplexní vazby mezi objekty v různých modulech.

 
Nahoru Odpovědět
10.12.2013 9:04
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na
David Hartinger:10.12.2013 10:02

"snažím se existující Windows aplikaci vytvořit v .NETu objektově" - Buď použij Entity Framework nebo to nedělej objektově vůbec. Něco mezi nemá smysl.

Nahoru Odpovědět
10.12.2013 10:02
You are the greatest project you will ever work on.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.