SQL Server w logistyce

Tabela _menu_pliki w bazie danych SQL Server

Ewidencja plików indywidualnych wdrożenia — pozwala odróżnić to, co dopisano dla klienta, od instalacji standardowej.

sql.server.net.pl/sql/
Uśmiechnięty analityk w garniturze przy szerokim monitorze
Uśmiechnięty analityk w garniturze przy szerokim monitorze
W skrócie
  • Tabela odpowiada na pytanie, które pliki zostały dodane lub zmienione na potrzeby konkretnego wdrożenia.
  • Znacznik INDYWIDUALNY rozdziela pliki wdrożeniowe od standardowych.
  • Kolumna DEFFOLDER wskazuje folder specjalny, w którym plik jest umieszczony.
  • Kolumna LASTUPDATE pozwala ustalić, kiedy plik był ostatnio modyfikowany — istotne przy aktualizacji systemu.

Do czego służy tabela [dbo].[_menu_pliki]

Każde wdrożenie systemu magazynowego zostawia po sobie ślad: dodatkowy wydruk, zmieniony formularz, własny szablon etykiety. Po dwóch latach i kilku aktualizacjach pytanie „które z tych plików są nasze, a które przyszły z instalacją” przestaje być oczywiste. Tabela [dbo].[_menu_pliki] istnieje po to, żeby na nie odpowiedzieć.

Struktura jest minimalna, bo zadanie jest wąskie. Nazwa pliku, folder specjalny, w którym się znajduje, znacznik odróżniający plik indywidualny od standardowego oraz data ostatniej modyfikacji. Tyle wystarcza, żeby przed aktualizacją systemu sporządzić listę rzeczy wymagających zabezpieczenia.

Praktyczne znaczenie tej ewidencji ujawnia się dokładnie raz — przy aktualizacji, gdy pliki standardowe są zastępowane nowymi wersjami. Bez listy plików indywidualnych operacja ta bywa jednokierunkowa: zmiany wprowadzone dla klienta znikają, a odtworzenie ich wymaga sięgnięcia po kopię zapasową całego katalogu i porównania go z nową instalacją.

Rola ewidencji plików przy aktualizacji systemu
Dopisanie DopisanieWdrożeniowiec dodaje plik na potrzeby konkretnego klienta
Ewidencja EwidencjaWiersz oznaczony znacznikiem INDYWIDUALNY trafia do tabeli
Zabezpieczenie ZabezpieczeniePrzed aktualizacją lista wskazuje, co należy skopiować
Przywrócenie PrzywróceniePo aktualizacji pliki indywidualne wracają na miejsce

Bez tej listy aktualizacja bywa jednokierunkowa — zmiany wprowadzone dla klienta znikają razem z podmienionymi plikami standardowymi.

Budowa tabeli — wykaz kolumn

Pięć kolumn wystarcza do jednoznacznego wskazania pliku i jego statusu we wdrożeniu.

Wykaz kolumn tabeli
KolumnaTypWymaganaZnaczenie
DEFFOLDERvarchar(3)
tekst do 3 znaków
nieIdentyfikator folderu specjalnego
ID_MENU_PLIKIint
liczba całkowita
takUnikalny identyfikator wiersza tabeli
INDYWIDUALNYbit
wartość logiczna 0/1
takOznaczenie czy dany plik jest indywidualny
LASTUPDATEdatetime
data i godzina
takData i czas aktualizacji zapisu
NAZWAPLIKUvarchar(100)
tekst do 100 znaków
takNazwa pliku specjalnego

Kolumna DEFFOLDER ma zaledwie trzy znaki i przechowuje symbol folderu specjalnego, nie ścieżkę. Odwzorowanie symboli na katalogi leży po stronie konfiguracji aplikacji.

Indeksy i wydajność zapytań

Tabela zawiera zwykle od kilku do kilkudziesięciu wierszy i jest odczytywana przy operacjach serwisowych, nie w trakcie normalnej pracy.

Indeksy zdefiniowane na tabeli
IndeksKolumnyRodzaj
PK__menu_plikiID_MENU_PLIKIklucz główny

Klucz główny na kolumnie ID_MENU_PLIKI jest wystarczający. Dodatkowy indeks na NAZWAPLIKU miałby sens dopiero przy ewidencji obejmującej setki pozycji, co przy typowym wdrożeniu się nie zdarza.

Dlaczego indywidualne pliki giną przy aktualizacji

Utrata zmian wdrożeniowych podczas aktualizacji to jeden z najczęstszych i najbardziej irytujących problemów w utrzymaniu systemów. Mechanizm jest zawsze ten sam.

  • Aktualizacja zastępuje pliki standardowe nowymi wersjami — to jej podstawowe zadanie i nie da się go pominąć.
  • Plik zmieniony dla klienta nadal nosi standardową nazwę, więc z punktu widzenia procedury niczym się nie wyróżnia.
  • Podmiana odbywa się bez ostrzeżenia, bo procedura nie ma skąd wiedzieć, że plik był modyfikowany.
  • Problem ujawnia się dopiero w pracy — użytkownik zgłasza, że wydruk wygląda inaczej niż wczoraj.
  • Odtworzenie wymaga kopii zapasowej katalogu sprzed aktualizacji i ręcznego porównania z nową instalacją.

Ewidencja rozwiązuje ten problem, ale tylko wtedy, gdy jest prowadzona konsekwentnie. Plik dopisany w pośpiechu i nieodnotowany w tabeli zachowa się dokładnie tak jak wcześniej — zniknie przy najbliższej aktualizacji. Dlatego wpis do ewidencji powinien być częścią procedury wprowadzania zmiany, a nie czynnością wykonywaną przy okazji porządków.

Zmiana pliku standardowego a plik własny

Nie każdą modyfikację trzeba wprowadzać przez podmianę pliku standardowego. Wybór podejścia decyduje o tym, ile pracy będzie kosztować każda kolejna aktualizacja.

Sposoby wprowadzania zmian wdrożeniowych
PodejścieZachowanie przy aktualizacjiKiedy stosować
Zmiana pliku standardowegoPlik zostaje nadpisany, zmiana przepadaOstateczność, gdy nie ma innej drogi
Nowy plik o własnej nazwiePozostaje nietknięty, aktualizacja go nie dotyczyWydruki, szablony i formularze dodatkowe
Konfiguracja w tabeli parametrówZachowana, o ile wiersz nie jest systemowyUstawienia sterujące zachowaniem, nie wyglądem
Blok kodu w tabeli _code_jsZachowany, o ile nie jest oznaczony jako systemowyZmiany zachowania formularzy

Trzy ostatnie warianty przechodzą aktualizację bez uszczerbku — pierwszy wymaga ewidencji i ręcznego przywrócenia.

Wniosek praktyczny jest taki, że ewidencja plików powinna być krótka. Jeżeli rośnie do kilkudziesięciu pozycji, zwykle oznacza to, że zmiany wprowadza się przez podmianę plików standardowych tam, gdzie wystarczyłby parametr albo osobny plik o własnej nazwie. Każdy taki wiersz to praca do wykonania przy każdej kolejnej aktualizacji.

Jak korzystać z tabeli w praktyce

Przy prowadzeniu ewidencji plików wdrożeniowych obowiązują następujące zasady:

  • Odnotowuj plik w tabeli w tym samym momencie, w którym go dodajesz — ewidencja uzupełniana później zawsze jest niekompletna.
  • Ustawiaj znacznik INDYWIDUALNY zgodnie ze stanem faktycznym; to on decyduje o zabezpieczeniu pliku przy aktualizacji.
  • Sprawdzaj zawartość tabeli przed każdą aktualizacją systemu i sporządzaj kopię wymienionych w niej plików.
  • Porównuj kolumnę LASTUPDATE z datą pliku na dysku — rozbieżność oznacza zmianę wprowadzoną poza procedurą.
  • Stosuj spójną konwencję symboli w kolumnie DEFFOLDER; trzy znaki nie zostawiają miejsca na improwizację.
  • Usuwaj wpisy dotyczące plików wycofanych z użycia, żeby lista przed aktualizacją pozostawała wiarygodna.

Lista plików wymagających zabezpieczenia przed aktualizacją systemu:

SELECT  DEFFOLDER,
        NAZWAPLIKU,
        LASTUPDATE,
        DATEDIFF(DAY, LASTUPDATE, GETDATE()) AS DNI_OD_ZMIANY
FROM    dbo._menu_pliki
WHERE   INDYWIDUALNY = 1
ORDER BY DEFFOLDER, NAZWAPLIKU;

Wynik tego zapytania warto zapisać razem z kopią plików — po aktualizacji stanowi listę kontrolną tego, co należy przywrócić.

Ewidencja plików indywidualnych jest jedną z tych rzeczy, których wartość poznaje się dopiero po pierwszej aktualizacji przeprowadzonej bez niej. Kilkanaście wierszy w tabeli zastępuje godziny porównywania katalogów z kopią zapasową.

Powiązane tabele i dokumentacja

Ewidencja plików wiąże się z pozostałymi mechanizmami rozróżniającymi instalację standardową od zmian wdrożeniowych:

FAQ

Najczęściej zadawane pytania o tabelę _menu_pliki

01

Do czego służy znacznik INDYWIDUALNY?

Odróżnia pliki dodane lub zmienione na potrzeby konkretnego wdrożenia od tych pochodzących z instalacji standardowej. To rozróżnienie ma znaczenie przy aktualizacji systemu: pliki standardowe zostaną zastąpione nowymi wersjami, a indywidualne wymagają wcześniejszego zabezpieczenia i późniejszego przywrócenia.

02

Dlaczego zmiany wdrożeniowe znikają po aktualizacji?

Ponieważ plik zmieniony dla klienta zwykle zachowuje standardową nazwę, więc procedura aktualizacji traktuje go jak każdy inny i podmienia. Nie ma sposobu, żeby rozpoznała modyfikację samodzielnie — stąd potrzeba prowadzenia ewidencji, która wskaże, co należy skopiować przed operacją.

03

Co przechowuje kolumna DEFFOLDER?

Trzyznakowy symbol folderu specjalnego, w którym plik jest umieszczony — nie pełną ścieżkę. Odwzorowanie symboli na rzeczywiste katalogi leży po stronie konfiguracji aplikacji, dzięki czemu ta sama ewidencja działa niezależnie od układu katalogów na serwerze.

04

Kiedy uzupełniać wpis w ewidencji?

W momencie dodawania pliku, jako część procedury wprowadzania zmiany. Ewidencja uzupełniana później — przy okazji porządków albo tuż przed aktualizacją — jest zawsze niekompletna, bo pliki dopisane w pośpiechu umykają. A wystarczy jeden pominięty, żeby lista przestała być wiarygodna.

Słownik pojęć

Słownik pojęć

Pojęcia związane z rozróżnieniem instalacji standardowej i zmian wdrożeniowych.

WWdrożenie
Proces uruchomienia systemu w firmie: analiza procesów, konfiguracja, migracja danych, szkolenia i uruchomienie produkcyjne.
AAktualizacja wersji
Wgranie nowego wydania oprogramowania wraz ze zmianami wynikającymi z przepisów. Wymaga testów na kopii bazy przed wdrożeniem produkcyjnym.
KKopia zapasowa
Zabezpieczona kopia bazy danych pozwalająca odtworzyć stan systemu po awarii. W SQL Server wykonuje się ją w trybie pełnym, różnicowym lub jako kopię dziennika transakcji.
MMigracja danych
Przeniesienie kartotek i historii ze starego systemu do nowego. Etap, na którym najczęściej ujawnia się rzeczywista jakość danych w firmie.
MMicrosoft SQL Server
Serwer relacyjnej bazy danych, na którym pracują aplikacje SoftwareStudio. Odpowiada za spójność danych, uprawnienia dostępu, kopie zapasowe i wydajność zapytań.
IIndeks bazodanowy
Struktura przyspieszająca wyszukiwanie wierszy w tabeli. Dobrze dobrane indeksy skracają czas zapytań, ale spowalniają zapisy i zajmują miejsce na dysku.

Zobacz to w praktyce

Sprawdź, jak systemy SoftwareStudio oparte na MS SQL Server wspierają ten obszar Twojej firmy.