Come dovrei avvicinarmi alla memorizzazione di singoli risultati booleani per un'intera tabella?

0

Ho già fatto questa domanda sullo stack overflow. Ma non ho ricevuto alcuna risposta che potrebbe aiutarmi. Quindi ho pensato di provare qui.

link

Essenzialmente sto creando un'applicazione Java che legge e scrive da un database. Nel corso della progettazione crea nuove tabelle con nuove informazioni e collega le informazioni da quelle tabelle.

Ad ogni modo, la domanda è, il cliente ha richiesto che il JTable che uso per visualizzare i nomi delle tabelle dal database ora includa 3 colonne ciascuna con una casella di controllo. Quale sarebbe l'azione migliore per me per memorizzare i dati da queste caselle di controllo?

Alcuni dei metodi che ho considerato sono

  1. Salva le informazioni all'interno della tabella in nuove colonne (ciò comporterà la modifica del codice per la modifica e la scrittura di queste tabelle, che è possibile)
  2. Crea una nuova tabella e memorizza gli altri nomi di tabelle e i valori nelle colonne all'interno (tieni a carico controlla i nomi correnti rispetto ai meta dati e aggiungi / rimuovi dove necessario)
  3. Crea un file di proprietà e recupera le informazioni da esso, dove corrisponde ai nomi del MetaData (es. TableName = yes, no)

L'opzione che mi sembra la più facile / veloce da fare / eseguire sarebbe quella di andare con l'opzione 3 e creare un file delle proprietà.

NOTA: All'interno dell'applicazione ho già dei metodi per leggere e scrivere da un file delle proprietà, oltre a creare una nuova tabella all'interno del database e scrivere / leggere dalle righe di ogni tabella.

    
posta Fos 25.07.2014 - 13:23
fonte

3 risposte

1

La tua prima opzione sembra la più sana. Si dispone di un componente dell'interfaccia utente che visualizza i record da una tabella e ora è necessario visualizzare i valori booleani associati a ciascun record ed è necessario mantenere i valori impostati dall'utente. Salvare questi tre nuovi valori con il record ha più senso, logicamente, ma non so abbastanza sul tuo sistema per sapere per certi .

La tua seconda opzione comporta la suddivisione di questi valori in una tabella separata. Questo potrebbe avere senso se esistesse una sorta di relazione 1: n o n: 1, o queste colonne erano molto scarsamente popolate in un numero enorme di record e si era preoccupati di usare troppa memoria per loro. Non sembra che nessuno di questi problemi sia pertinente qui, quindi probabilmente non è necessario seguire questa strada.

La terza opzione consente di suddividere i dati fuori dalla tabella e di salvarli in un file delle proprietà. Perché dividere i dati in aree così diverse? Sembra che la tua ragione per farlo sia un tempo di sviluppo veloce. Ti consiglio di non farlo, a meno che le tue scadenze non siano così strette.

La mia raccomandazione è di andare con l'opzione del pugno, ma ancora una volta, non ci sono abbastanza informazioni sul tuo sistema per sapere se è davvero la soluzione migliore.

    
risposta data 25.07.2014 - 17:14
fonte
0

La tua descrizione sembra aver già codificato un metodo per il salvataggio dei dati. Nella mia esperienza, la cosa migliore da fare quando si lavora su un'applicazione esistente è seguire lo stesso schema per tutto il tempo. Il mio consiglio è di vedere come i dati simili vengono gestiti dall'applicazione. Segui lo stesso schema che viene utilizzato lì quando si salvano i dati della casella di controllo.

Vantaggi del seguire i modelli esistenti

Ci sono molti buoni motivi per seguire schemi esistenti quando si aggiungono funzionalità a un'applicazione esistente. Uno dei vantaggi più importanti è che tutto il codice segue le stesse regole. Se ci sono un paio di sviluppatori che capiscono come funziona l'applicazione, continueranno a capire come funziona l'applicazione dopo aver apportato le modifiche. Un altro vantaggio è che gli sviluppatori possono apprendere un modello per capire come l'applicazione salva i dati.

Raccomandazione

Raccomando di dare un'occhiata a ciò che viene attualmente fatto per salvare i dati di questo tipo. Usalo come modello quando aggiungi la funzionalità con le caselle di controllo. Sono sicuro che esiste un modello già stabilito per te da imitare. Hai solo bisogno di scoprire di cosa si tratta. Sfortunatamente, non posso darti più consigli di questo senza comprendere ulteriormente la struttura dell'applicazione.

    
risposta data 25.07.2014 - 15:45
fonte
0

Salterò il file delle proprietà. Dato che stai mantenendo i dati sulle tabelle del database, ha senso solo tenerlo nel database.

Se i dati nelle colonne "checkbox" fanno parte dei dati già presenti nelle tabelle, vai avanti e aggiungi semplicemente le colonne per esso. Se sono metadati non correlati ai dati nella tabella, quindi creare una tabella separata per esso. Denormalizzare il database per scopi di interfaccia utente è un odore di progettazione. È difficile dare ulteriori consigli solo con le informazioni fornite.

    
risposta data 25.07.2014 - 23:15
fonte

Leggi altre domande sui tag