Import produktów przy 4-krotnym zagnieżdzeniu kategorii

0

Potrzebuje zaimportować produkty razem z kategoriami. Mam plik csv gdzie pierwsze cztery kolumny odpowiadają za kategorie (grupa, podgrupa, odmiana, wersja), które też muszę zaimportować do innej tabeli (products_category).
Baza kategorii (istotne kolumny):
id, name, parentId, position
Baza produktów:
id, name, categoryId (id wersji)

Nie wiem jak zabrać się do tego przy takiej ilości zagnieżdżeń kategorii. Pierwsze co mi przychodzi na myśl to wyklikać wszyskie możliwości kategorii. Tylko jak później określić id wersji w pliku csv? Np.:
Kategoria 1:
Grupa: Filtracja
Podgrupa: Akcesoria
Odmiana: Inne
Wersja: Do filtrów powrotnych
Kategoria 2:
Grupa: Filtracja
Podgrupa: Akcesoria
Odmiana: Wskaźniki zabrudzenia
Wersja: Do filtrów powrotnych

W bazie kategorii wyglądałoby to np. tak:
1, Filtracja, 0, 0
2, Akcesoria, 1, 0
3, Inne, 2, 0
4, Do filtrów powrotnych, 3, 0
5, Wskaźniki zabrudzenia, 2, 1
6, Do filtrów powrotnych, 5, 0

Nie mogę danej wersji w pliku csv dać dane category_id bo muszę uwzględnić wszystkie wcześniejsze rzeczy tj. grupa, podgrupa, odmiana. Jedyne co mi się nasuwa to kolosalnie duże JEŻELI w excelu nadające dane category_id wersji sprawdzając kolejno grupę, podgrupę i odmianę. Czy znacie jakiś lepszy sposób na zaimportowanie tych danych?

0

nie, musisz wszystko sprawdzać pokolei, jedynie możesz przyspieszyć wszystko przez cachowanie już sprawdzonych kategorii

0

To będzie jednorazowy import około 500 produktów, najbardziej "boli" dodawanie ręcznie tych wszystkich kategorii i zastanawiam się czy tego nie dałoby radę jakoś uprościć.

0

po co ręcznie? ja to na spokojnie bym napisał w kodzie tak jak podałem.

0

Tylko że ja nie robię funkcjonalności importu na stałe, tylko potrzebuję zaimportować produkty jednorazowo do sql. Rozumiem, że według Ciebie szybciej jest napisać import nawet jeśli w zamyśle jest użycie go raz?

0

tak, ja bym napisał taki kod jednorazowy w godzine

0

Stwórz sobie tabelę o tej samej strukturze co plik CSV, wciągnij do niego jakimś narzędziem całą jego zawartość.
Potem zrób
SELECT DISTINCT A,B,C,D
...
ORDER BY A,B,C,D
z tej tabeli i powstawiaj w pętli odpowiednie kategorie. Nie napisałeś w czym działasz, więc trudno tu coś więcej podpowiedzieć.

1 użytkowników online, w tym zalogowanych: 0, gości: 1