Hallo,
In een eerder topic heb ik aangegeven dat ik als beginner aan het leren en proberen ben om zakelijke prijzen van meerdere leveranciers te importeren en in een later stadium ook deze prijzen ook weer te geven. Om de uitleg niet te complex te maken, het is in principe een prijsvergelijk.
In een eerder topic hebben verschillende mensen aangegeven dat in plaats van een hele brede (kolommen per leverancier) of hele lange (volledige rijen per product), het ook een mogelijkheid zou kunnen zijn om eens naar een EAV oplossing te kijken ( link naar topic )
In ieder geval heb ik nu een aantal tabellen in mijn database import_db:
products -> de "master" waarin unieke EAN komen met andere unieke kolommen zoals ISBN/UPC
product_attributes -> hierin moeten de product specificaties komen zoals kleur, afmetingen, afbeeldingen etc
product_prices -> prijzen per leverancier, voorraad, levertijd etc
Waar ik nu even tegenaanloop is hoe ik artikelen het beste kan importeren / kopiëren. Wat is de meest efficiente flow. Ik ga dus nog niets displayen, maar ik wil op het moment alleen nog maar producten toevoegen.
Wat ik nu doe (naar 1 tabel) is als onderstaand. De EAN komt maar 1 maal voor in de tabel:
Bovenstaande werkt, maar of ik moet gebruik maken van meerdere kolommen per leverancier, de tabel kan dan heel breed worden. Of ik kies ervoor om per leverancier per ean een rij te maken, dan wordt het heel lang, en aagezien ik voor specificities ook kolommen nodig heb, zal het ook heel breed zijn.
Wat ik dus tracht te gaan doen is de informatie uit 'tmp' naar meerdere tabellen te kopieeren.
In principe match ik producten met EAN en leveranciers met Merchant_ID. EAN is een foreign key in product_prices en product_attributes.
mijn gedachte is:
als eerste de 'products' update, nieuwe producten aanmaken met universele basis info zoals EAN/UPC/ISBN:
Dus in principe wat ik al had, maar voor iets minder kolommen.
Daarna het updaten en/of toevoegen van prijzen en andere data voor de specifieke leverancier:
En als laatste voeg de attributen voor het product toe, kleuren, afmetingen, afbeeldingen etc:
Ik heb het idee dat ik ergens wat stappen te veel doe, en dat de queries wellicht ook wel vrij zwaar kunnen gaan worden met groot aantal producten. Zie ik iets over het hoofd, denk ik te moeilijk? Of zit ik wel op de goede weg.
Alle pointers en suggesties zijn van harte welkom en worden zeer op prijs gesteld.
In een eerder topic heb ik aangegeven dat ik als beginner aan het leren en proberen ben om zakelijke prijzen van meerdere leveranciers te importeren en in een later stadium ook deze prijzen ook weer te geven. Om de uitleg niet te complex te maken, het is in principe een prijsvergelijk.
In een eerder topic hebben verschillende mensen aangegeven dat in plaats van een hele brede (kolommen per leverancier) of hele lange (volledige rijen per product), het ook een mogelijkheid zou kunnen zijn om eens naar een EAV oplossing te kijken ( link naar topic )
In ieder geval heb ik nu een aantal tabellen in mijn database import_db:
products -> de "master" waarin unieke EAN komen met andere unieke kolommen zoals ISBN/UPC
product_attributes -> hierin moeten de product specificaties komen zoals kleur, afmetingen, afbeeldingen etc
product_prices -> prijzen per leverancier, voorraad, levertijd etc
Waar ik nu even tegenaanloop is hoe ik artikelen het beste kan importeren / kopiëren. Wat is de meest efficiente flow. Ik ga dus nog niets displayen, maar ik wil op het moment alleen nog maar producten toevoegen.
Wat ik nu doe (naar 1 tabel) is als onderstaand. De EAN komt maar 1 maal voor in de tabel:
code:
1
2
3
4
| Download CSV van leverancier Laad CSV in een 'tmp' database Voeg nieuwe EAN uit de 'tmp' tabel toe aan 'products' tabel update de overige kolommen voor iedere EAN/rij in 'products' met data uit 'tmp' |
Bovenstaande werkt, maar of ik moet gebruik maken van meerdere kolommen per leverancier, de tabel kan dan heel breed worden. Of ik kies ervoor om per leverancier per ean een rij te maken, dan wordt het heel lang, en aagezien ik voor specificities ook kolommen nodig heb, zal het ook heel breed zijn.
Wat ik dus tracht te gaan doen is de informatie uit 'tmp' naar meerdere tabellen te kopieeren.
In principe match ik producten met EAN en leveranciers met Merchant_ID. EAN is een foreign key in product_prices en product_attributes.
mijn gedachte is:
als eerste de 'products' update, nieuwe producten aanmaken met universele basis info zoals EAN/UPC/ISBN:
code:
1
2
3
4
| Download CSV van leverancier Laad CSV in een 'tmp' database Voeg nieuwe EAN uit de 'tmp' tabel toe aan 'products' tabel update de overige kolommen voor iedere EAN/rij |
Dus in principe wat ik al had, maar voor iets minder kolommen.
Daarna het updaten en/of toevoegen van prijzen en andere data voor de specifieke leverancier:
code:
1
2
| Voeg nieuwe EAN uit de 'tmp' tabel toe aan 'product_prices tabel als waar EAN and Merchant_ID niet bestaan . update de prijzen, levertijd etc voor iedere EAN waar zowel de juiste EAN als Merchant_ID zijn |
En als laatste voeg de attributen voor het product toe, kleuren, afmetingen, afbeeldingen etc:
code:
1
2
3
4
5
| Voeg nieuwe EAN uit de 'tmp' toe aan 'product_prices' tabel als waar EAN and Attribute 1 niet bestaan . update the value van attribute 1 Voeg nieuwe EAN uit de 'tmp' toe aan 'product_prices' tabel als waar de combinatie EAN and Attribute 2 niet bestaan . update the value van attribute 2 herhaal tot alle attributes zijn toegevoegd |
Ik heb het idee dat ik ergens wat stappen te veel doe, en dat de queries wellicht ook wel vrij zwaar kunnen gaan worden met groot aantal producten. Zie ik iets over het hoofd, denk ik te moeilijk? Of zit ik wel op de goede weg.
Alle pointers en suggesties zijn van harte welkom en worden zeer op prijs gesteld.