Sono un fan della programmazione e vorrei sapere che cosa le persone hanno trovato essere l'opzione più comoda o piuttosto ciò che le persone trovano più comprensibile. Sono l'unico codice di scrittura nella mia azienda, ma gradualmente lo consegnerò a qualcun altro in futuro.
Il progetto
Il progetto su cui sto lavorando analizza un enorme file di testo che arriva una volta al giorno. Il file di dati utilizza il file di dati del giorno precedente come riferimento, in modo che ogni file di dati venga creato sul file di dati precedente. Utilizzando la documentazione sono in grado di analizzare il file di testo e popolare un database MySQL. Una volta letto il file di testo, i dati nel database vengono manipolati e quindi scaricati in molte cartelle di lavoro di Excel. Il file di testo ha un'enorme quantità di dati e ho solo bisogno di una minima parte per le cartelle di lavoro di Excel.
La mia domanda
La mia domanda è qual è la struttura corretta per questo programma? Vedo che ho due opzioni.
- È meglio costruire un database che si adatti ai dati. Quindi creare un database con più tabelle e campi è effettivamente necessario e probabilmente un po 'criptico nel suo layout.
- È meglio manipolare i dati mentre vengono analizzati e metterli in un database umano più leggibile?
Ciò che ho fatto fino ad ora
Quando ho scritto la prima versione di questo programma, ho optato per l'opzione 2. Dal momento che non sapevo molto dei database relazionali al momento e volevo che fosse molto facile per me capire, visualizzare, ecc. Tuttavia, ora che Sto cercando di espandere i dati che analizzo dal file di testo e dal momento che ogni file di dati si basa sul file di dati del giorno precedente, mi sto appoggiando all'opzione 1, quindi più avanti sulla linea non dovrò passare una giornata a ricostruire il banca dati.
Ha senso? Si prega di commentare se non lo fa. Qualsiasi aiuto sarebbe molto apprezzato.
Grazie, Justin
Aggiorna
Vorrei iniziare dicendo che le risposte finora sono state molto utili. Grazie. Dopo aver letto alcuni commenti, tuttavia, trovo che sono stato un po 'vago nella mia domanda. Lasciami provare ad essere un po 'più chiaro. Ho a che fare con i dati finanziari dei clienti. Ogni account ha una propria cartella di lavoro Excel che viene utilizzata dai consulenti finanziari per effettuare proiezioni e decisioni di investimento. I fogli di lavoro aggiuntivi nella cartella di lavoro vengono utilizzati per visualizzare le disponibilità dell'account e il futuro previsto per il cliente. I dati che ottengo in ogni file di dati sono separati da un record. Ogni record ha un tipo ... ci sono qualcosa come 13 diversi tipi di record. Ogni tipo di record è contrassegnato da una particolare lettera o numero. Quindi, dopo quella lettera o numero, c'è un numero specifico di caratteri che rappresentano quel particolare record. Il layout del record differisce per tipo di record e vi sono informazioni ridondanti tra i tipi di record che lo rendono inoltre aggravante. Un altro punto di discussione è che se l'advisor finanziario acquista un nuovo titolo, che non ha acquistato prima del giorno lavorativo successivo, solo nel file di dati di quel giorno, verranno visualizzate le informazioni sulla sicurezza (come il nome, tipo di sicurezza, ecc.) e non di nuovo a meno che non ci sia un cambiamento in quella sicurezza. Quindi, se dovessi mai ricostruire il database, dovrei iniziare dal primo giorno.
Quindi sto prendendo questo file di dati, analizzandolo e scrivendolo in un database MySQL diviso in circa quattro tabelle. Uso EF6 per lavorare con il database, e quindi è stato un motivo per cui ho iniziato con campi e tabelle semplici e leggibili. Spero che questa spiegazione estesa aiuti.