SQL Server w logistyce

Tabela _urzadzenia w bazie danych SQL Server

Ewidencja urządzeń łączących się z systemem — terminali, skanerów i ekranów, z lokalizacją i datą ostatniego kontaktu.

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
  • Wiersz opisuje urządzenie, które pobiera konfigurację z systemu — terminal magazynowy, ekran informacyjny albo czytnik przy bramie.
  • Rozpoznanie odbywa się przez IDENTYFIKATOR_ZEW zgłaszany przez samo urządzenie, nie przez adres IP.
  • Znacznik AKTYWNE pozwala odciąć urządzenie od konfiguracji bez usuwania jego wpisu.
  • Kolumna OSTATNIE_LOGOWANIE jest jedynym sygnałem, że sprzęt przestał się zgłaszać.

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

Magazyn pracuje na sprzęcie, który nie ma klawiatury ani nikogo, kto zauważy komunikat o błędzie: terminale przy regałach, skanery przy bramie, ekrany nad rampami. Każde z tych urządzeń musi skądś pobrać swoją konfigurację. Tabela [dbo].[_urzadzenia] przechowuje ich ewidencję razem z uprawnieniem do tego dostępu.

Rozpoznanie opiera się na identyfikatorze zgłaszanym przez samo urządzenie, a nie na adresie sieciowym. To rozróżnienie ma praktyczne znaczenie: terminal przenoszony między halami zmienia adres, ale zachowuje tożsamość, więc nadal otrzymuje właściwą konfigurację. Adres IP jest zapisywany osobno, jako informacja pomocnicza — ostatni użyty, nie przypisany na stałe.

Trzy kolumny opisowe — lokalizacja, opis i właściciel — nie wpływają na działanie, ale decydują o tym, czy ewidencja jest do czegokolwiek przydatna. Bez nich lista kilkudziesięciu identyfikatorów nie pozwala odpowiedzieć na najprostsze pytanie serwisowe: który to fizycznie sprzęt i gdzie go szukać.

Jak urządzenie otrzymuje swoją konfigurację
Zgłoszenie ZgłoszenieUrządzenie podaje swój identyfikator zewnętrzny
Rozpoznanie RozpoznanieSystem odnajduje wpis i sprawdza znacznik aktywności
Konfiguracja KonfiguracjaUrządzenie otrzymuje ustawienia przypisane do swojego wpisu
Odnotowanie OdnotowanieZapisany zostaje adres IP i czas ostatniego kontaktu

Tożsamość urządzenia nie zależy od adresu sieciowego, więc przeniesienie terminala do innej hali nie wymaga zmian w konfiguracji.

Budowa tabeli — wykaz kolumn

Osiem kolumn opisuje tożsamość urządzenia, jego umiejscowienie oraz stan dostępu.

Wykaz kolumn tabeli
KolumnaTypWymaganaZnaczenie
ADRES_IPvarchar(20)
tekst do 20 znaków
nieOstatnio użyty adres IP przez urządzenie
AKTYWNEbit
wartość logiczna 0/1
takAktywność dostępu do konfiguracji przez urządzednie
IDENTYFIKATOR_ZEWvarchar(150)
tekst do 150 znaków
takIdentyfikator zgłoszony przez urządzenie
ID_URZADZENIAbigint
liczba całkowita 64-bitowa
takIdentyfikator konfiguracji urządzenia
LOKALIZACJAvarchar(250)
tekst do 250 znaków
nieLokalizacja urządzenia np. biuro Szczecin
OPISvarchar(250)
tekst do 250 znaków
nieOpis urządzenia
OSTATNIE_LOGOWANIEdatetime
data i godzina
nieData ostatniego logowania urządzenia
WLASCICIELvarchar(250)
tekst do 250 znaków
nieOsoba, grupa lub oddział do której przypisane jest urządzenie

Kolumna ADRES_IP przechowuje ostatnio użyty adres, nie adres przypisany. Jej zmiana jest normalna przy sprzęcie mobilnym i nie oznacza problemu; przy urządzeniu stacjonarnym warto ją jednak sprawdzić.

Brak indeksów i co z tego wynika przy rozbudowie

Tabela nie ma zdefiniowanego żadnego indeksu, także klucza głównego. Przy kilkunastu urządzeniach nie ma to znaczenia, ale konsekwencje warto znać.

Skutki braku indeksów w ewidencji urządzeń
ZagadnienieStan obecnyZalecenie przy rozbudowie
Rozpoznanie urządzeniaOdczyt całej tabeli przy każdym zgłoszeniuIndeks unikalny na IDENTYFIKATOR_ZEW
Duplikaty identyfikatorówNic ich nie blokujeTo samo ograniczenie unikalności
Odwołania z innych tabelBrak formalnego klucza do wskazaniaKlucz główny na ID_URZADZENIA
Kontrola nieaktywnychOdczyt całości, akceptowalny przy małej tabeliBez zmian

Pierwszy wiersz jest najważniejszy: zgłoszenie urządzenia następuje przy każdym uruchomieniu, a przy kilkuset terminalach odczyt całej tabeli przestaje być darmowy.

Ryzyko duplikatu identyfikatora zasługuje na osobną uwagę. Dwa wpisy o tej samej wartości nie spowodują błędu — urządzenie otrzyma konfigurację z tego, który zostanie odczytany jako pierwszy. Efektem jest sprzęt zachowujący się różnie po każdym restarcie, co bywa diagnozowane tygodniami, zanim ktokolwiek zajrzy do samej ewidencji.

Jak korzystać z tabeli w praktyce

Przy prowadzeniu ewidencji urządzeń warto trzymać się kilku zasad:

  • Wypełniaj kolumnę LOKALIZACJA na tyle dokładnie, żeby serwisant odnalazł sprzęt bez pytania — sama nazwa miasta nie wystarcza.
  • Wskazuj właściciela w kolumnie WLASCICIEL; przy sprzęcie bez przypisanej osoby nikt nie zgłasza jego awarii.
  • Odcinaj dostęp znacznikiem AKTYWNE zamiast usuwać wpis — historia przypisania bywa potrzebna przy rozliczeniu sprzętu.
  • Kontroluj kolumnę OSTATNIE_LOGOWANIE; urządzenie, które nie zgłosiło się od tygodnia, zwykle nie działa.
  • Sprawdzaj duplikaty identyfikatorów po każdej większej dostawie sprzętu — nic ich obecnie nie blokuje.
  • Rozważ indeks unikalny na kolumnie IDENTYFIKATOR_ZEW, gdy liczba urządzeń przekroczy kilkadziesiąt.
  • Zapisuj w opisie model i numer seryjny sprzętu — przy zgłoszeniu gwarancyjnym to pierwsza informacja, o którą pyta serwis.
  • Weryfikuj po każdej zmianie w sieci, czy adresy w tabeli odpowiadają rzeczywistości; rozbieżność przy urządzeniu stacjonarnym oznacza zwykle, że zgłasza się inny sprzęt niż zakładano.

Urządzenia, które od dłuższego czasu nie zgłosiły się do systemu — lista do sprawdzenia przez serwis:

SELECT  IDENTYFIKATOR_ZEW,
        OPIS,
        LOKALIZACJA,
        WLASCICIEL,
        ADRES_IP,
        OSTATNIE_LOGOWANIE,
        DATEDIFF(DAY, OSTATNIE_LOGOWANIE, GETDATE()) AS DNI_MILCZENIA
FROM    dbo._urzadzenia
WHERE   AKTYWNE = 1
  AND   (OSTATNIE_LOGOWANIE IS NULL
         OR OSTATNIE_LOGOWANIE < DATEADD(DAY, -7, GETDATE()))
ORDER BY OSTATNIE_LOGOWANIE;

Wiersze z pustą datą ostatniego logowania to urządzenia zaewidencjonowane, lecz nigdy nieuruchomione — zwykle sprzęt czekający na wdrożenie albo wpis wprowadzony zapasowo.

Warto też z góry ustalić, co dzieje się ze sprzętem wycofywanym z użycia. Terminal oddany do serwisu, zgubiony albo przekazany do innego oddziału powinien zostać odcięty od konfiguracji tego samego dnia — inaczej pozostaje uprawniony do pobierania ustawień, mimo że nikt nad nim nie panuje. Znacznik aktywności załatwia to jednym kliknięciem, ale tylko wtedy, gdy ktoś o nim pamięta w momencie przekazywania sprzętu.

Ewidencja urządzeń bywa zakładana przy wdrożeniu i potem nieaktualizowana, aż do momentu, w którym trzeba odnaleźć konkretny terminal. Wtedy okazuje się, że połowa wpisów opisuje sprzęt wycofany dwa lata temu, a nowy nie ma przypisanej lokalizacji. Kilka minut przy każdej dostawie oszczędza tej sytuacji.

Powiązane tabele i dokumentacja

Ewidencja urządzeń wiąże się z konfiguracją ekranów i pozostałymi zapisami dostępu:

FAQ

Najczęściej zadawane pytania o tabelę _urzadzenia

01

Dlaczego urządzenie jest rozpoznawane po identyfikatorze, a nie po adresie IP?

Bo adres się zmienia, a tożsamość nie. Terminal przenoszony między halami albo pracujący w sieci bezprzewodowej otrzymuje inny adres przy każdym połączeniu. Identyfikator zgłaszany przez samo urządzenie pozostaje stały, więc konfiguracja trafia tam, gdzie powinna, bez ingerencji administratora.

02

Co oznacza pusta data ostatniego logowania?

Że urządzenie zostało zaewidencjonowane, ale nigdy się nie zgłosiło. Zwykle chodzi o sprzęt czekający na wdrożenie albo o wpis wprowadzony zapasowo. Jeżeli urządzenie miało już pracować, warto sprawdzić zgodność identyfikatora — literówka w tej kolumnie jest najczęstszą przyczyną milczenia nowego terminala.

03

Czym grozi duplikat identyfikatora?

Sprzętem zachowującym się różnie po każdym restarcie. Dwa wpisy o tej samej wartości nie powodują błędu — urządzenie otrzyma konfigurację z tego, który zostanie odczytany jako pierwszy, a kolejność nie jest gwarantowana. Takie zachowanie bywa diagnozowane tygodniami, zanim ktoś zajrzy do samej ewidencji.

04

Czy tabela wymaga indeksów?

Przy kilkunastu urządzeniach nie. Przy kilkuset — tak, bo rozpoznanie następuje przy każdym uruchomieniu sprzętu, a bez indeksu oznacza odczyt całej tabeli. Indeks unikalny na kolumnie IDENTYFIKATOR_ZEW załatwia obie sprawy naraz: przyspiesza odczyt i blokuje powstawanie duplikatów.

Słownik pojęć

Słownik pojęć

Pojęcia związane z urządzeniami pracującymi w magazynie.

TTerminal Android
Przenośne urządzenie ze skanerem kodów, na którym magazynier wykonuje operacje bezpośrednio przy regale. Zastępuje papierowe listy i wprowadzanie danych po fakcie.
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.
RRFID
Radio Frequency Identification — identyfikacja falami radiowymi. Czytnik odczytuje wiele znaczników naraz, bez konieczności widzenia etykiety, co przyspiesza inwentaryzację.
KKod kreskowy
Graficzny zapis identyfikatora odczytywany skanerem. Wymaga bezpośredniej widoczności etykiety i odczytu pojedynczo, ale jest tani i powszechnie obsługiwany.
PPulpit menedżerski
Ekran zbierający najważniejsze wskaźniki w jednym widoku, odświeżany na bieżąco z bazy danych.
RRole i uprawnienia
Mechanizm przypisywania użytkownikom dostępu do funkcji i danych. Zamiast nadawać uprawnienia pojedynczo, przypisuje się je do roli odpowiadającej stanowisku.

Zobacz to w praktyce

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