Non sono sicuro se questa posizione giusta per questa domanda, ma qui è.
Al momento ho circa 30 diversi feed di dati sui prodotti CSV o TXT. Sto cercando di creare uno strumento per
1) carica ogni feed
2) separa ogni feed riga per riga
3) estrai ogni titolo, categoria, prezzo, ecc. in un oggetto prodotto e ...
4) crea o aggiorna ciascun prodotto nel database.
Ecco il mio problema. Ogni feed ha un nome diverso per gli attributi di intestazione come title
, category
, price
, ecc. Anche le categorie di ogni feed sono uniche.
Finora l'approccio a cui mi sono orientato è: (nota questa è una panoramica approssimativa)
- L'amministratore compila il modulo dell'interfaccia utente. L'amministratore seleziona un tipo di file e amp; allega il feed di dati del prodotto
- Al momento dell'invio, il feed di dati del prodotto viene inviato pezzo per pezzo e salvato su disco tramite socket.io
- Una volta salvato il file, un lavoro viene aggiunto alla coda dei lavori per elaborare il feed di dati
- Una volta chiamato il lavoro, prima controlliamo i nuovi attributi dei dati di intestazione, se viene scoperto un nuovo attributo, mettiamo il lavoro in attesa e impostiamo un prompt dell'interfaccia utente per definire quale sia l'attributo header, Fe. l'amministratore dovrebbe mappare
Classification -> category
,Name -> title
oProduct Name -> title
. - Una volta riconosciuti tutti gli attributi dell'intestazione, interrompiamo il file riga per riga utilizzando i flussi.
- Con ogni linea spezzata prendiamo il
title
,category
,price
, ecc. Controlliamo quindi se il prodotto esiste, in caso affermativo, aggiorna il prodotto, in caso contrario, crea il prodotto. - Una volta elaborata ogni riga, cancelliamo il file e contrassegniamo il lavoro come completo.
Quale sarebbe un buon modo per mappare le categorie di feed in arrivo alle mie categorie db? Stavo pensando di impostare un prompt dell'interfaccia utente, Fe. Mens Footwear -> Mens Shoes
.
Sto andando nella giusta direzione? Devo consolidare tutti i feed e quindi importare? O sto solo sbagliando tutto questo?