Mam następującą sytuację.
Importuje do bazy danych dane produktów z pliku tekstowego. Importowane dane to np.: id,ilość,cena.
Mój problem polega na tym że w momencie kolejnego eksportu z pliku w pliku tekstowym może nie być niektórych produktów (co może oznacza że mam je usunąć z bazy danych).
Na razie zrobiłem prosto. W momencie importu nowego pliku wszystkie dotychczasowe rekordy w bazie danych mają ustawione pole active=0. Nowe rekordy są dodawane, a istniejące aktualizowane oraz ustalona wartość active=1. Po imporcie te którym pozostała wartość active=0 są usuwane.
Wszystko jest ok jeżeli importowane dane zawsze byłyby z jednego (całościowego) pliku. Może jednak zajść sytuacja w której importowane dane będą z kilku plików. Jak to rozwiązać w takiej sytuacji.
Pyton_000
11.05.2017, 11:31:46
a co chcesz rozwiazywac?
Sytuację w której informacja o usunięciu produktu jest przekazywana poprzez brak informacji o produkcie w pliku przy jednoczesnym zachowaniu możliwości aktualizacji poprzez wczytywanie danych z wielu plików.
Obecnie jest tak, że jeżeli zaktualizuje dane z pliku w którym znajduje się informacja o np. jednym produkcie to pozostałe produkty są oznaczone do usunięcia.
Jeszcze inaczej spróbuje to wytłumaczyć. W plikach eksportu znajdują się jedynie informacje o produktach dostępnych. Produkt dzisiaj dostępny jutro może przestać być dostępny. Nie ma informacji w pliku że produkt jest już niedostępny, a jedynie w takim przypadku więcej się nie pojawi w pliku z danymi. Nie stanowiłoby to jednak problemu gdyby import danych był z jednego pliku (ustawiam wszystko na nieaktywne, a następnie aktualizuje ustawiając na aktywne, a to co pozostało nieaktywne usuwam). Problemem jest to, że import może być z kilku plików. Nie mogę więc w momencie wczytania ustawić nieaktywne dla wszystkich bo wówczas jak wczytam dane np. skarpetek to majtki i szorty staną się nieaktywne, a tym samym do usunięcia. Wczytam majtki to skarpetki i szorty będą do usunięcia...
nospor
11.05.2017, 12:29:34
Przy zalozeniu, ze pliki do zaimportowania importujesz jeden za drugim:
przed importem ustaw wszystkie na 0
w skrypcie do importu ustawiaj tylko na 1
po imporcie wszystkiego usuwaj te z 0
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.