Šta je pametnije , a najbruraditi? (HITNO)

Dr. NN

Primećen član
Poruka
757
Neka ispravi neko naslov u :

Šta je pametnije , a najbrže uraditi? (HITNO)

Pravim cms u kojem će klijent koji popuni polja moći da eksportuje to u xml i pošalje dalje ovima koji to prihvataju i očitavaju..

primer tabela:
https://online.igkservice.lv/docs/tech/02-credit_report_xml.html#names

xml primer:
https://online.igkservice.lv/docs/tech/igk_credit_report_sample.xml

Imam samo 15 dana da završim to.
Razmišljam se da li napraviti 30tak tabela + Companies kao na prvom linku ili napraviti tri tabele

Groups, Items i Companies, sve tri povezane

U Groups bih čuvao naziv grupe, tip grupe (npr Shareholders)
u Items bih čuvao item-e za svaku od grupe kao poseban red (za Shareholders npr name,gender,origin, svaka poseban red), dok bi kolone bile name, type i možda još nešto)
*većina ima iste nazive item-a

?

Mana prvog je što će mi odužiti sve,
mana drugog je što neću moći lepo upravljati podacima jer su svi u jednom tipu podatka pod name kolonom...
 
Poslednja izmena:
Ovo su grupe, tj. moguce tabele...
Kod:
This XML file does not appear to have any style information associated with it. The document tree is shown below.
<document type="igk-xml-simple">
<group type="cr:Company Data">
<group type="cr:OrderReference" title="Order Reference">...</group>
<group type="cr:Summary" title="S U M M A R Y" header="Reported Subject">...</group>
<group type="cr:Identification" title="Identification" na="n/a">...</group>
<group type="cr:PreviousNames" title="Previous Names">...</group>
<group type="cr:TradeNames" title="Trading Names, Brands">...</group>
<group type="cr:Address" title="Office Address" na="n/a">...</group>
<group type="cr:LegalAddress" title="Legal Address">...</group>
<group type="cr:OtherAddresses" title="Other Addresses">...</group>
<group type="cr:Contacts" title="Contacts" na="n/a">...</group>
<group type="cr:Foundation" title="Incorporation" na="n/a">...</group>
<group type="cr:ImportantNotes" title="Important Notes">...</group>
<group type="cr:RegistrationData" title="Registration Data" na="n/a">...</group>
<group type="cr:LegalForm" title="Legal Form" na="n/a">...</group>
<group type="cr:Capital" title="Share Capital" na="n/a">...</group>
<group type="cr:Shareholders" title="Shareholders" na="n/a">...</group>
<group type="cr:ManagersSupervisoryBoard" title="Board" header="Board / Executives">...</group>
<group type="cr:ManagersExecutives" title="Executives">...</group>
<group type="cr:ManagersBottomComments">...</group>
<group type="cr:SignatureRight" title="Authorised signature" na="n/a">...</group>
<group type="cr:ChangesInRegistrData" title="Changes in Registration Data">...</group>
<group type="cr:Activities" title="Activities" na="n/a">...</group>
<group type="cr:Employees" title="Staff employed" na="n/a">...</group>
<group type="cr:EmployeesHistory" title="Staff History">...</group>
<group type="cr:Export/Import" title="Export / Import">...</group>
<group type="cr:Export" title="Export">...</group>
<group type="cr:Import" title="Import">...</group>
<group type="cr:AssetsImmovable" title="Real estate" header="Facilities">...</group>
<group type="cr:AssetsOther" title="Other Property" header="">...</group>
<group type="cr:Branches" title="Branches">...</group>
<group type="cr:Participation" title="Subsidiaries and Participation" na="n/a">...</group>
<group type="cr:Bankers" title="Bankers" na="n/a">...</group>
<group type="cr:Clients" title="Clients">...</group>
<group type="cr:Suppliers" title="Suppliers">...</group>
<group type="cr:RelatedCompanies" title="Other associated Companies">...</group>
<group type="cr:Defaults" title="Litigation">...</group>
<group type="cr:Debts" title="Remarks on payment">...</group>
<group type="cr:Pledges" title="Business mortgages">...</group>
<group type="cr:FinancialData" title="Financial Elements">...</group>
<group type="cr:Publications" title="Publications">...</group>
<group type="cr:Comments" title="FINAL COMMENTS">...</group>
<group type="cr:RegistrationHistory" title="Registration History">...</group>
<group type="cr:CapitalHistory" title="Capital History">...</group>
<group type="cr:FinancialStatements" title="Financial Statements" header="APPENDIX A">...</group>
<group type="cr:BottomNotes" title="Bottom Notes">...</group>
</group>
</document>
 
A, ye olde EAV dilema.

Relacione baze su dizajnirane tako da rade sa prvom varijantom, gde ne moraš da ideš u drugu kolonu po značenje prve.

Dakle, ako bi upotrebljavao relacionu bazu onako kako je zamišljena i namenjena, EAV ne bi dolazio u obzir, već samo to sa jedinstvenim kolonama.

Naravno, stvarni život nije tako jednostavan i ovde to deluje kao logičan izbor, ali stavi na papir kako će se sve koristiti ti podaci i da li ćeš imati probleme da ih koristiš u kontekstu koji nije eksport u XML.

Možda i neka od ovih varijanti ti odgovara: 1) generator koda, 2) runtime DDL, 3) NoSQL (Mongo, Raven)? NoSQL uglavnom nisu ACID, ja ih zato nešto i ne mirišem, ali ne znam, možda su baš pogodne za to što praviš.

- - - - - - - - - -

Heh, sad vidim da si pitao pre 3 dana, verovatno si već prelomio za nešto, ako nisi u analysis paralysis.

Kako si na kraju napravio?
 
A, ye olde EAV dilema.

Relacione baze su dizajnirane tako da rade sa prvom varijantom, gde ne moraš da ideš u drugu kolonu po značenje prve.

Dakle, ako bi upotrebljavao relacionu bazu onako kako je zamišljena i namenjena, EAV ne bi dolazio u obzir, već samo to sa jedinstvenim kolonama.

Naravno, stvarni život nije tako jednostavan i ovde to deluje kao logičan izbor, ali stavi na papir kako će se sve koristiti ti podaci i da li ćeš imati probleme da ih koristiš u kontekstu koji nije eksport u XML.

Možda i neka od ovih varijanti ti odgovara: 1) generator koda, 2) runtime DDL, 3) NoSQL (Mongo, Raven)? NoSQL uglavnom nisu ACID, ja ih zato nešto i ne mirišem, ali ne znam, možda su baš pogodne za to što praviš.

- - - - - - - - - -

Heh, sad vidim da si pitao pre 3 dana, verovatno si već prelomio za nešto, ako nisi u analysis paralysis.

Kako si na kraju napravio?

'vako
sportnet_eer.jpg


Zbog toga što imam samo 15 dana (sada 11), ovako sam napravio. Obzirom da ima mnogo ponavljanja istih item-a u xml-u, sve sam ih stavio u items tabelu, dok sam specifične tabele izdvojio. Na 40% projekta sam trenutno.

Logika je ovakva:

Puni se prvo companies tabela sa podacima o imenu firme, id-u user-a, potom i companygroups (posto je veza izmedju grupe i kompanije M:M), sa report_year, group_id.
Items-i i spec tabele su povezane sa companygroups u koju prosledjujem companygroup id, da bih znao odmah koj kompaniji, grupi i reportu pripada item, kao i unete podatke.

Sve je na on input change eventu i preko ajax-a.

ItemDefaults su defaultni item-i za svaku grupu, kako bih znao koji item pripada kojoj grupi, a konkretno sluzi za to da bih automatski generisao input field polja za FormBulder na osnovu onoga sto upisem u input_field kolonu za taj item. Ako je text, onda je input type="text", ako je textarea onda <textarea> itd.

Pri exportu cu uzeti item-e gde je group_id = ?

pa cemo onda dobiti kao gore xml u formi

<group>
<item></item>
</group>
 
Poslednja izmena:

Back
Top