Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Test ride con Gowow Ori: elettrico e off-road vanno incredibilmente d'accordo
Test ride con Gowow Ori: elettrico e off-road vanno incredibilmente d'accordo
Abbiamo provato per diversi giorni una new entry del mercato italiano, la Gowow Ori, una moto elettrica da off-road, omologata anche per la strada, che sfrutta una pendrive USB per cambiare radicalmente le sue prestazioni
Recensione OnePlus 15: potenza da vendere e batteria enorme dentro un nuovo design
Recensione OnePlus 15: potenza da vendere e batteria enorme dentro un nuovo design
OnePlus 15 nasce per alzare l'asticella delle prestazioni e del gaming mobile. Ma non solo, visto che integra un display LTPO 1,5K a 165 Hz, OxygenOS 16 con funzioni AI integrate e un comparto foto con tre moduli da 50 MP al posteriore. La batteria da 7.300 mAh con SUPERVOOC 120 W e AIRVOOC 50 W è la ciliegina sulla torta per uno smartphone che promette di offrire un'esperienza d'uso senza alcun compromesso
AMD Ryzen 5 7500X3D: la nuova CPU da gaming con 3D V-Cache per la fascia media
AMD Ryzen 5 7500X3D: la nuova CPU da gaming con 3D V-Cache per la fascia media
Vediamo come si comporta il Ryzen 5 7500X3D, nuovo processore di casa AMD che fonde 6 core Zen 4 con la tecnologia 3D V-Cache, particolarmente utile in scenari come il gaming. Annunciato a un prezzo di listino di 279€, il nuovo arrivato sarà in grado di diventare un riferimento per i sistemi budget? Ecco cosa ne pensiamo.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 22-05-2012, 18: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, 10: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


Test ride con Gowow Ori: elettrico e off-road vanno incredibilmente d'accordo Test ride con Gowow Ori: elettrico e off-road va...
Recensione OnePlus 15: potenza da vendere e batteria enorme dentro un nuovo design   Recensione OnePlus 15: potenza da vendere e batt...
AMD Ryzen 5 7500X3D: la nuova CPU da gaming con 3D V-Cache per la fascia media AMD Ryzen 5 7500X3D: la nuova CPU da gaming con ...
SONY BRAVIA 8 II e BRAVIA Theatre System 6: il cinema a casa in formato compatto SONY BRAVIA 8 II e BRAVIA Theatre System 6: il c...
KTC H27E6 a 300Hz e 1ms: come i rivali ma a metà prezzo KTC H27E6 a 300Hz e 1ms: come i rivali ma a met&...
A 17,69€ è un prezzo senza senso ...
Tecnologie derivate dalla F1 per acceler...
Macbook Air M4 a 879€, Mac mini M4 a 549...
La morte del gatto Kit Kat riaccende il ...
iPhone 16 128GB, in 4 colori, a 695€: &e...
Il primo microprocessore non fu di Intel...
Nuovi arrivi tutti i giorni su Amazon Se...
Xeon Diamond Rapids solo a 16 canali: In...
ECOVACS DEEBOT T80 OMNI scontato di 600€...
Mac Pro, è davvero finita? Il Mac...
Texas nuovo cuore dell'intelligenza arti...
4,9 miliardi su Google: Buffett sfida il...
Google ha svelato un agente AI che può g...
Tesla cambia idea: è in arrivo l'...
Anche Firefox punta sull'intelligenza ar...
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: 09:33.


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