Sto lavorando su un'applicazione che si connette a un'altra applicazione (Quickbooks) utilizzando un'API inviando / ricevendo richieste / risposte XML. Sono in grado di lavorare con i dati nella risposta XML e caricarlo in un datatable in c #, quindi non è questo il problema. Quello che sto cercando di fare è scrivere i dati dal file XML Quickbooks in un database relazionale come SQL Server in modo che io possa renderlo disponibile per un'app Web o altre applicazioni.
Il problema che sto avendo è che per l'oggetto Account, ci sono più entità figlio (fino a 5) per un dato genitore. Ad esempio:
- Parent: Ricavi
- Bambino: donazioni di beneficenza
- Sotto-bambino: Rifugio per senzatetto
- Sotto-secondario: missione di Seattle
- Sotto-sotto-sotto-bambini: cibo
Questo esempio è un po 'estremo, dato che il particolare file con cui sto lavorando va solo a tre livelli, ma un massimo di cinque è consentito da Quickbooks (quindi sto cercando di trovare una soluzione che ridimensiona bene). Quando creo il mio datatable in C # dai dati nel file XML, ho due colonne: ParentID, ChildID. Sarebbe come questo:
ParentID ChildID Account Balance
-------- ------- ------- --------
001 002 Revenues 45670
002 003 Charitable Donations 1500
003 004 Homeless Shelter 800
004 005 Seattle Mission 400
005 NULL Food 200
In questo esempio, sono in grado di determinare tutti gli ID figlio di un genitore, quindi guardare al ParentID con quel ChildID e vedere se quel figlio ha figli, ecc. Ho un metodo che fa un discreto lavoro di analisi attraverso questo, e funziona bene per il momento, ma questo è davvero il modo migliore per archiviarlo in un database se volessi ospitare in modo permanente i dati in un database relazionale? Sembra che ci dovrebbe essere una soluzione più elegante, ma non sono sicuro di cosa sarebbe.