|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
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 |
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: Apr 2002
Città: Palermo
Messaggi: 4913
|
Quote:
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 |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 09:33.




















