Torna indietro   Hardware Upgrade Forum > Software > Programmazione

WoW: Midnight, Blizzard mette il primo, storico mattone per l'housing e molto altro
WoW: Midnight, Blizzard mette il primo, storico mattone per l'housing e molto altro
Con Midnight, Blizzard tenta il colpaccio: il player housing sbarca finalmente su Azeroth insieme a una Quel'Thalas ricostruita da zero. Tra il dramma della famiglia Ventolesto e il nuovo Prey System, ecco com'è la nuova espansione di World of Warcraft
Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato
Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato
Nuova frontiera per i robot tagliaerba, con Ecovacs GOAT O1200 LiDAR Pro che riconosce l'ambiente in maniera perfetta, grazie a due sensori LiDAR, e dopo la falciatura può anche rifinire il bordo con il tagliabordi a filo integrato
Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere?
Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere?
Equilibrio e potenza definiscono il Samsung Galaxy S26+, un flagship che sfida la variante Ultra e la fascia alta del mercato con il primo processore mobile a 2nm. Pur mantenendo l'hardware fotografico precedente, lo smartphone brilla per un display QHD+ da 6,7 pollici d'eccellenza, privo però del trattamento antiriflesso dell'Ultra, e per prestazioni molto elevate. Completano il quadro la ricarica wireless a 20W e, soprattutto, un supporto software settennale
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 22-05-2012, 17:01   #1
braian
Member
 
L'Avatar di braian
 
Iscritto dal: Apr 2007
Messaggi: 153
[JAVA] Progettazione Applicazione Documentale DB

Ciao a tutti.
Dovrei realizzare una applicazione che utilizza un DB, e che è costruita in questo modo:
1) ci sono le tabelle dei metadati (Tipo documento, Attributi Documento...)
2) a partire dalle tabelle dei metadati vengono create/modificate (anche durante la normale esecuzione dell'applicazione) le tabelle dei dati. Es: se creo un nuovo Tipo Documento inserendo un nuovo record nella tabella dei metadati "Tipo documento" (Contratti, Fatture, Appunti..) viene creata sul DB la relativa tabella dei dati, che ha come colonne gli attributi che ho definito nell'altra tabella dei metadati.

Pensavo di utilizzare un ORM per mappare le tabelle dei metadati dato che queste non cambiano la loro struttura durante il funzionameno dell'applicazione, ma mi chiedevo se era possibile mappare anche le tabelle dei dati , in modo da lavorare anche per queste con dei POJO.

Non credo però che sia possibile creare classi a runtime e modificare la loro struttura (potrei decidere di aggiungere dinamicamente un attributo alla tabella dei contratti e vorrei avere la calsse modificata).

Questa credo che sia un po' la logica utilizzata anche dai CMS o dai CRM.

Avete qualche suggerimento su come strutturare la mia applicazione, specialmente per la parte ORM/DB?

Grazie
braian è offline   Rispondi citando il messaggio o parte di esso
Old 23-05-2012, 09:22   #2
gokan
Senior Member
 
L'Avatar di gokan
 
Iscritto dal: Apr 2002
Città: Palermo
Messaggi: 4913
Quote:
Originariamente inviato da braian Guarda i messaggi
Ciao a tutti.
Dovrei realizzare una applicazione che utilizza un DB, e che è costruita in questo modo:
1) ci sono le tabelle dei metadati (Tipo documento, Attributi Documento...)
2) a partire dalle tabelle dei metadati vengono create/modificate (anche durante la normale esecuzione dell'applicazione) le tabelle dei dati. Es: se creo un nuovo Tipo Documento inserendo un nuovo record nella tabella dei metadati "Tipo documento" (Contratti, Fatture, Appunti..) viene creata sul DB la relativa tabella dei dati, che ha come colonne gli attributi che ho definito nell'altra tabella dei metadati.

Pensavo di utilizzare un ORM per mappare le tabelle dei metadati dato che queste non cambiano la loro struttura durante il funzionameno dell'applicazione, ma mi chiedevo se era possibile mappare anche le tabelle dei dati , in modo da lavorare anche per queste con dei POJO.

Non credo però che sia possibile creare classi a runtime e modificare la loro struttura (potrei decidere di aggiungere dinamicamente un attributo alla tabella dei contratti e vorrei avere la calsse modificata).

Questa credo che sia un po' la logica utilizzata anche dai CMS o dai CRM.

Avete qualche suggerimento su come strutturare la mia applicazione, specialmente per la parte ORM/DB?

Grazie
Ciao, la natura così mutevole delle tabelle dati mi fa pensare che forse utilizzare un database relazionale non è la migliore delle idee.
Difatti così come potresti aggiungere una colonna, potresti anche avere la necessità di eliminare e fare queste operazioni alla lunga potrebbe anche essere un carico o addirittura non essere possibile (ad esempio su IBM DB2 fino a qualche tempo fa non si poteva nemmeno fare il drop column).

Potresti forse, nell'ipotesi di essere "costretto" ad utilizzare un db relazionale, pensare di usare delle colonne di tipo XML (sia DB2 che Oracle hanno un tipo dato simile). In questo modo potresti buttare tutto dentro una colonna xml e poi fare delle query sui dati usando xpath (http://www.ibm.com/developerworks/da...0603saracco2/).

Un ORM come Hibernate oltre a fare il mapping classe->tabella, consente anche di fare il contrario tabella->classe (utile soprattutto nei sistemi legacy), ma nel tuo caso lo sconsiglierei fortemente (in riferimento al fatto che potresti modificare una tabella e trovare il nuovo attributo sulla classe, ma non sono sicuro che si possa fare a runtime).

Ciao
__________________
Sun Certified Java Programmer - Sun Certified Web Component Developer - Sun Certified Business Component Developer
gokan è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


WoW: Midnight, Blizzard mette il primo, storico mattone per l'housing e molto altro WoW: Midnight, Blizzard mette il primo, storico ...
Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato Ecovacs Goat O1200 LiDAR Pro: la prova del robot...
Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere? Recensione Samsung Galaxy S26+: sfida l'Ultra, m...
Zeekr X e 7X provate: prezzi, autonomia fino a 615 km e ricarica in 13 minuti Zeekr X e 7X provate: prezzi, autonomia fino a 6...
Marathon: arriva il Fortnite hardcore Marathon: arriva il Fortnite hardcore
Nutanix accelera la migrazione da VMware...
Nutanix apre ai neocloud: piattaforma mu...
Nutanix amplia la piattaforma cloud e st...
Le fotografie dell'eclissi solare e dell...
Oracle AI Database si potenzia con nuove...
Russia offline: blackout internet mobile...
Gemini, Google investe 30 milioni per la...
Roborock Qrevo Edge S5A: 17.000 Pa, acqu...
Resa pubblica la foto della ''Terra che ...
Il robot che ha piegato 200 scatole di f...
SteelSeries Aerox 3 Wireless Gen 2: nuov...
"Quasi sociopatico": Sam Altma...
Star Wars Eclipse in difficoltà: ...
Gestione del team e romance organiche: l...
Intel lancia Core Ultra X9 378H: hardwar...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 23:59.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v