Skocz do zawartości

Zdublowane kategorie w bazie

Polecane posty

Właśnie zauważyłem, że niektóre kategorie Allegro (obecnie dobrze ponad 6 tys., w starszych wersjach bazy sprawdzałem i było po małe kilka) mam w bazie danych dwukrotnie.  Przykładowo:

 

select * from st_Category where cat_CatId = 90900

 

cat_Id cat_SiteId cat_CatId cat_ParentId cat_Name cat_Leaf cat_Expired cat_Virtual cat_Position cat_RegId

103166 1000 90900 79210 Trening umysłu, efektywna nauka 1 0 NULL 3 NULL

118807 1000 90900 79210 Trening umysłu, efektywna nauka 1 0 NULL 3 NULL

 

select count (*) from (select cat_CatId from st_Category group by cat_CatId having COUNT (*) > 1) test

 

6373

 

Czy jest to normalne działanie Sello?  Akurat powoduje to błąd w skrypcie, który uzupełnia dane w aukcjach wystawionych zewnętrznie (działam jeszcze na Sello 1.10) i nie wiem, czy poprawić ten skrypt, czy to tylko chwilowy problem?  Nie spowoduje to w dłuższej perspektywie jakichś błędów w samym Sello?

 

Właśnie pobieram kategorie z wymuszeniem - sprawdzę, czy to zlikwiduje problem.

 

Acha, na końcu sprawdziłem jeszcze raz - część z tych kategorii jest w bazie przynajmniej trzykrotnie.  B. proszę o komentarz kogoś z Sello Team.

 

 

 

Pobranie kategorii z wymuszeniem nie likwiduje tego objawu.

 

Link to postu

Generalnie przy danych pobieranych z Allegro dla nowych obiektów ważna jest wartość kolumny xxx_Expired, która świadczy o tym, że przy pobieraniu danych ta konkretna wartość nie była zwrócona przez Allegro - co dla Sello oznacza, że została wycofana. Jest ona używana i widoczna w aukcjach trwających i zakończonych. Zdarzało się podczas awarii Allegro, że nie były zwracane całe gałęzie drzew z kategoriami, co powodowało oznaczenie ich jako expired.

Jednak po ponownym poprawnym pobraniu mogły się one znowu pojawić z expired = 0.

 

Zatem sytuacja, że jest 1 wpis z expired = 0 i kilka takich samych z expired = 1 jest dopuszczalna przez Sello. Gorzej jeśli by tych expired = 1 pojawiało się setki dla jednej kategorii. Oznaczać by to mogło, że albo Allegro jest niestabilne i zwraca co chwilę inne dane, albo jest jakaś usterka w mechanizmie aktualizowania parametrów z serwisu.

Link to postu

Cóż, jak widać na podanym na początku przykładzie w obu kategoriach wartość Expired wynosi zero.  Sprawdziłem teraz sytuację dla pozostałych przypadków (w drugim zapytaniu wybieram unikalne wartości wszystkich pól z wyjątkiem cat_Id):

 

select count (*) from (select cat_CatId from st_Category group by cat_CatId having COUNT (*) > 1) test

 

6373

 

select count (*) from (select cat_CatId from

(select distinct cat_SiteId, cat_CatId, cat_ParentId, cat_Name, cat_Leaf, cat_Expired, cat_Virtual, cat_Position, cat_RegId from st_Category) kat group by cat_CatId having COUNT (*) > 1) test

 

1

 

Jak widać we wszystkich przypadkach z wyjątkiem jednego zdublowane są całe wiersze tabeli kategorii, włącznie z polem cat_Expired.  Dodatkowo sprawdziłem sytuację dla jedynego przypadku, gdzie zawartość wierszy się nie pokrywa:

 

select * from st_Category where cat_CatId IN (16189) order by cat_CatId

cat_Id	cat_SiteId	cat_CatId	cat_ParentId	cat_Name		cat_Leaf	cat_Expired	cat_Virtual	cat_Position	cat_RegId
84166	1000		16189		5613		2001 i młodsze	1	0		NULL		4		NULL
101836	1000		16189		0		Pozostałe	1	0		NULL		300		1002

 

Na Allegro kategoria nr 16189 to

Muzyka > Płyty kompaktowe > Pop > Zagraniczny > 2001 i młodsze,

tak więc prawidłowy jest (zapewne) pierwszy wpis.  Co natomiast z drugim?  I w ogólności, co z kwestią dublowania wierszy w tabeli kategorii - z poprzedniej wiadomości nie jest dla mnie do końca jasne, czy może to spowodować błędy w pracy Sello.

Link to postu

Trudno powiedzieć, czy spowoduje to problemy. Dziwny jest też zapis tych dwóch wskazanych kategorii. Wygląda na to, że druga kategoria z cat_ParentId = 0 odnosi się do głównej kategorii w drzewie - a takiej kategorii nie ma. Przypuszczam, że kategorie te pojawiły się wskutek błędów na webApi - patrząc na forum webAPi zdarza się to często.

 

Czy w Sello jest widoczna główna kategoria w drzewie o nazwie Pozostałe?

Link to postu

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.
Uwaga: Twój wpis zanim będzie widoczny, będzie wymagał zatwierdzenia moderatora.

Użytkownik forum
Odpowiedz...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

×
×
  • Dodaj nową pozycję...