Forum » Programiranje » [JAVA EE] Problem java entitet in podatkovnih shem
[JAVA EE] Problem java entitet in podatkovnih shem
draljo0007 ::
Lep pozdrav. Izdelujem spletno aplikacijo in sem prišel do problema, ki ga ne znam rešit. Naj opišem moj problem:
Aplikacija bo pisana v javi EE poganjal pa jo bom na Glassfish-u ter svojo podatkovno bazo imel na Postgresql-u. Za povezavo med aplikacijo in bazo bom uporabljal java entity razrede. Sama podatkovna baza je sestavljena tako da dve shemi bodo že od začetka, nato pa z dodajanjem novih uporabnikov(Podjetji) se bo za vsako podjetje ustvarila posamična shema. Za vse sheme podjetji bo struktura tabel povsem identična. Problem oz. vprašanje je sledeče:
Kako bi lahko uporabil eno entiteto za več shem? Primer: Vsako podjetje bo imelo v svoji shemi tabelo Uporabniki. Kako bi enetitetni razred Uporabnik uporabil za tabelo Uporabniki v različnih shemah odvisno od podjetja?
Je kakšna možnost, da ko kličeš Query, da določiš katero shemo želiš...?
Hvala za odgovore in lep pozdrav!
Aplikacija bo pisana v javi EE poganjal pa jo bom na Glassfish-u ter svojo podatkovno bazo imel na Postgresql-u. Za povezavo med aplikacijo in bazo bom uporabljal java entity razrede. Sama podatkovna baza je sestavljena tako da dve shemi bodo že od začetka, nato pa z dodajanjem novih uporabnikov(Podjetji) se bo za vsako podjetje ustvarila posamična shema. Za vse sheme podjetji bo struktura tabel povsem identična. Problem oz. vprašanje je sledeče:
Kako bi lahko uporabil eno entiteto za več shem? Primer: Vsako podjetje bo imelo v svoji shemi tabelo Uporabniki. Kako bi enetitetni razred Uporabnik uporabil za tabelo Uporabniki v različnih shemah odvisno od podjetja?
Je kakšna možnost, da ko kličeš Query, da določiš katero shemo želiš...?
Hvala za odgovore in lep pozdrav!
draljo0007 ::
Ja to že razumem, samo če uporabljaš razred EntityManager in Entity ne vem kako. Oziroma napiši mi en primer, če lahko?
Spura ::
draljo0007 je izjavil:
nato pa z dodajanjem novih uporabnikov(Podjetji) se bo za vsako podjetje ustvarila posamična shema.
why.jpg
tomazic89 ::
draljo0007 je izjavil:
nato pa z dodajanjem novih uporabnikov(Podjetji) se bo za vsako podjetje ustvarila posamična shema.
why.jpg
Tudi jaz se sprasujem enako. Na tvojem mestu bi poskusil podatkovno shemo popraviti tako, da bodo tabele staticne. Tvoj princip po mojem mnenju precej otezuje 'maintenance', 'performance' ter ne velja za dobro prakso. Verjamem pa, da lahko obstajajo primeri oziroma razlogi, da si se odlocil za omenjen pristop.
draljo0007 ::
Zakaj tako...dobro vprašanje. Najprej zato, ker so se tako odločili v našem podjetju, kar pa ne pomeni da se ne da še spremeniti, kot drugo pa je pri iskanju po tabelah najverjetneje tak način hitrejši, saj v posameznih tabelah ni takšnega velikega števila vpisov. Ker če si predstavljamo imamo recimo 50 podjetji, vsako podjetje pa ima recimo v povprečju v enem letu 100 dokumentov. Če sedaj opazujemo obdobje 5 let, ugotovimo da imamo kar naenkrat 25000 vpisu v tabeli dokumenti. Takšnih tabel z približno takšnimi vpisi je pa kar nekaj. Nisem strokovnjak za podatkovne baze, saj tudi zato pišem na forumu, da dobim čim boljšo rešitev. Mi znate kako drugače svetovat oziroma mislite, da podatkovna baza nima težav s takšnim načinom, da ima za vsa podjetja samo eno shemo tako kot sta predlagala.
Pa še to če ustvarim bazo na način, ki sta mi ga predlagala to pomeni, da za vsak vpis v posamezno tabelo rabim tudi atribut v tabeli z id-jem podjetja, ki temu vpisu pripada. Je tko?
Hvala za odgovor! Lep pozdrav!
Pa še to če ustvarim bazo na način, ki sta mi ga predlagala to pomeni, da za vsak vpis v posamezno tabelo rabim tudi atribut v tabeli z id-jem podjetja, ki temu vpisu pripada. Je tko?
Hvala za odgovor! Lep pozdrav!
kr?en ::
Nisem noben DB strucko, ampak 25K vnosov v eni tabeli v DBju je zelo malo. Nebi rekel, ce bi imel tam 10M vnosov.
Foreign keye bos pa uporabljal v vsakem primeru, ce imas tam ene 100 tabel v eni bazi. Dvomim, da je vsaka tabela nek samostojen kos.
In se strinjam z tomazicem, te sheme bodo samo zakomplicirale zadeve.
Foreign keye bos pa uporabljal v vsakem primeru, ce imas tam ene 100 tabel v eni bazi. Dvomim, da je vsaka tabela nek samostojen kos.
In se strinjam z tomazicem, te sheme bodo samo zakomplicirale zadeve.
Zgodovina sprememb…
- spremenil: kr?en ()
Spura ::
draljo0007 je izjavil:
Pa še to če ustvarim bazo na način, ki sta mi ga predlagala to pomeni, da za vsak vpis v posamezno tabelo rabim tudi atribut v tabeli z id-jem podjetja
Ni nujno. Recimo da imas tabelo dokumentov, v katerih imas id podjetja, id dokumenta in ostalo. Potem ce imas neko drugo tabelo, recimo metapodatki dokumenta, id podjetja ni vec potreben, ampak samo ID dokumenta. Na splosno par tabel rabi id podjetja, vecina jih najbrz ne rabi.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [SQL] MySQL, MSSQL, TSQL,... Kaj priporočate in kaj uporabljateOddelek: Programiranje | 4502 (3644) | Groove |
» | SQL/DML stavkiOddelek: Šola | 3347 (2689) | IL_DIAVOLO |
» | Izdelava svojega "dropboxa"Oddelek: Izdelava spletišč | 4744 (3221) | techfreak :) |
» | Baza & c#Oddelek: Programiranje | 4180 (3238) | xardas |
» | PHP: Izpis galerije slikOddelek: Izdelava spletišč | 1411 (1254) | Lion29 |