SQL Server w logistyce

Tabela _read w bazie danych SQL Server

Potwierdzenia zapoznania się z dokumentem — kto i kiedy przeczytał daną instrukcję, zarządzenie albo procedurę.

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 oznacza, że wskazany użytkownik potwierdził zapoznanie się z konkretnym dokumentem.
  • Powiązanie z dokumentem odbywa się przez numer referencyjny REFNO, wspólny dla całego systemu.
  • Indeks złożony REFNO_USERNAME_AKTYWNE obsługuje główne pytanie: czy ta osoba już potwierdziła.
  • Osobny znacznik AKTYWNE_SSJOB pozwala usłudze przypominającej działać niezależnie od statusu wpisu.

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

Instrukcja stanowiskowa, zarządzenie o zmianie procedury czy nowa karta charakterystyki mają wspólną cechę: samo ich opublikowanie nie wystarcza. Trzeba wykazać, że pracownicy się z nimi zapoznali. Tabela [dbo].[_read] gromadzi te potwierdzenia w formie nadającej się do przedstawienia podczas kontroli.

Konstrukcja jest prosta i przez to skuteczna. Wiersz łączy numer referencyjny dokumentu z nazwą użytkownika oraz czasem zapisu. Kolumna PRX wskazuje rodzaj dokumentu, a ACH — status wpisu. Brak wiersza oznacza brak potwierdzenia, więc raport o zaległościach sprowadza się do zestawienia listy zobowiązanych z zawartością tej tabeli.

Na uwagę zasługuje kolumna AKTYWNE_SSJOB, odrębna od zwykłego znacznika aktywności. Odpowiada za widoczność wpisu dla usługi wykonującej zadania automatyczne — najczęściej tej, która rozsyła przypomnienia o zaległych potwierdzeniach. Rozdzielenie obu znaczników pozwala wyłączyć przypominanie o konkretnym dokumencie bez naruszania samego zapisu potwierdzenia.

Obieg potwierdzenia zapoznania się z dokumentem
Publikacja PublikacjaDokument trafia do systemu i otrzymuje numer referencyjny
Potwierdzenie PotwierdzenieUżytkownik zaznacza zapoznanie się, powstaje wiersz w tabeli
Przypomnienie PrzypomnienieZadanie automatyczne wysyła monit tym, którzy jeszcze nie potwierdzili
Dowód DowódZestawienie potwierdzeń stanowi dokumentację na potrzeby kontroli

Wartość tego mechanizmu polega na tym, że brak wiersza jest równie wymowny jak jego obecność — raport zaległości powstaje bez dodatkowej ewidencji.

Budowa tabeli — wykaz kolumn

Dziewięć kolumn opisuje potwierdzenie, jego kontekst oraz sposób traktowania przez usługi automatyczne.

Wykaz kolumn tabeli
KolumnaTypWymaganaZnaczenie
ACHvarchar(1)
tekst do 1 znaków
takSymbol oznaczający stan wiersza 1 - zatwierdzony
AKTYWNEbit
wartość logiczna 0/1
takOkreślenie czy dany wiersz tabeli jest aktywny
AKTYWNE_SSJOBbit
wartość logiczna 0/1
takOkreślenie czy dany wiersz tabeli jest aktywny dla usługi SSJOB
ID__READint
liczba całkowita
takUnikalny identyfikator wiersza tabeli
KIEDYdatetime
data i godzina
takData utworzenia zapisu w bazie
PRXvarchar(3)
tekst do 3 znaków
takSymbol PRX
REFNObigint
liczba całkowita 64-bitowa
takUnikalny numer referencyjny rekordu w bazie StudioSystem
SYSTEMOWEbit
wartość logiczna 0/1
takOznaczenie wiersza czy jest systemowy, tzn, czy podczas synchronizacji z bazą ROOT dane wiersze zostaną przegrane z bazy wzorcowej do instalacji klienta
USERNAMEvarchar(50)
tekst do 50 znaków
nieNazwa użytkownika, dla którego zapisane jest potwierdzenie przeczytania dokumentu

Kolumna REFNO ma typ bigint i odwołuje się do numeru referencyjnego dokumentu w tabeli źródłowej. Nie zdefiniowano dla niej klucza obcego, więc spójność powiązania wymaga kontroli po stronie aplikacji.

Indeksy i wydajność zapytań

Trzy indeksy odpowiadają trzem pytaniom, które faktycznie zadaje się tej tabeli.

Indeksy zdefiniowane na tabeli
IndeksKolumnyRodzaj
PK__readID__READklucz główny
REFNO_USERNAME_AKTYWNEREFNO, USERNAME, AKTYWNEzwykły
USERNAMEUSERNAMEzwykły

Indeks REFNO_USERNAME_AKTYWNE obsługuje pytanie podstawowe — czy dana osoba potwierdziła dany dokument — i odpowiada na nie bez sięgania do samych wierszy, bo wszystkie potrzebne kolumny znajdują się w indeksie. Osobny indeks na USERNAME obsługuje widok „moje zaległe potwierdzenia”.

Potwierdzenia w praktyce: co ten mechanizm daje, a czego nie

Rejestr potwierdzeń bywa traktowany jako wystarczające zabezpieczenie prawne. Warto rozumieć, gdzie przebiega granica jego przydatności.

Zakres i ograniczenia rejestru potwierdzeń
PytanieCzy tabela odpowiadaUwagi
Kto potwierdził zapoznanie się z dokumentemTak, jednoznacznieLogin, czas i numer dokumentu w jednym wierszu
Kto jeszcze nie potwierdziłTak, przez zestawienie z listą zobowiązanychWymaga zdefiniowania, kogo dokument dotyczy
Kiedy nastąpiło potwierdzenieTak, z dokładnością do sekundyCzas zapisuje serwer, nie stanowisko użytkownika
Czy użytkownik dokument przeczytałNieRejestr odnotowuje kliknięcie, nie zrozumienie treści
Której wersji dokumentu dotyczy potwierdzeniePośrednioZależy od tego, czy nowa wersja dostaje nowy numer referencyjny

Ostatni wiersz jest najważniejszy przy wdrożeniu — decyduje o tym, czy zmiana treści wymusza ponowne potwierdzenie.

Kwestia wersjonowania rozstrzyga o wartości całego mechanizmu. Jeżeli poprawiona instrukcja zachowuje dotychczasowy numer referencyjny, wcześniejsze potwierdzenia pozostają w mocy — a pracownicy nie dowiedzą się o zmianie. Jeżeli dostaje nowy numer, potwierdzenia zaczynają się od zera i każdy musi zapoznać się z aktualną wersją. Drugie rozwiązanie jest zwykle właściwe, ale wymaga świadomej decyzji przy konfiguracji obiegu.

Jak korzystać z tabeli w praktyce

Przy korzystaniu z rejestru potwierdzeń warto pamiętać o kilku sprawach:

  • Ustal przy wdrożeniu, czy nowa wersja dokumentu otrzymuje nowy numer referencyjny — to decyduje, czy zmiana wymusza ponowne potwierdzenie.
  • Definiuj krąg zobowiązanych osobno; sama tabela mówi, kto potwierdził, ale nie kto miał obowiązek.
  • Korzystaj ze znacznika AKTYWNE_SSJOB, aby wstrzymać przypomnienia o dokumencie bez usuwania zapisanych potwierdzeń.
  • Nie usuwaj wierszy — potwierdzenie jest dowodem, a jego brak bywa interpretowany na niekorzyść pracodawcy.
  • Kontroluj wpisy wskazujące nieistniejące dokumenty; brak klucza obcego nie chroni przed osieroconymi potwierdzeniami.
  • Zestawiaj raport zaległości cyklicznie, a nie przed kontrolą — wtedy jest już za późno na jego uzupełnienie.

Raport zaległych potwierdzeń dla wskazanego dokumentu — lista osób, które jeszcze go nie zatwierdziły:

SELECT  u.LOGIN,
        u.NAZWISKO
FROM    dbo._users AS u
WHERE   u.AKTYWNE = 1
  AND   NOT EXISTS (SELECT 1
                    FROM   dbo._read AS r
                    WHERE  r.REFNO    = @refno
                      AND  r.USERNAME = u.LOGIN
                      AND  r.AKTYWNE  = 1)
ORDER BY u.NAZWISKO;

Warunek w podzapytaniu odpowiada dokładnie kolumnom indeksu REFNO_USERNAME_AKTYWNE, dzięki czemu sprawdzenie każdego użytkownika sprowadza się do jednego przeszukania indeksu.

Rejestr potwierdzeń działa najlepiej wtedy, gdy nikt nie musi o nim pamiętać: dokument publikuje się raz, przypomnienia wychodzą automatycznie, a raport zaległości jest dostępny na żądanie. Wersja, w której ktoś raz na kwartał obdzwania dział w poszukiwaniu brakujących podpisów, technicznie też działa — tylko nie oszczędza niczyjego czasu.

Powiązane tabele i dokumentacja

Rejestr potwierdzeń łączy się z kontami użytkowników oraz pozostałymi zapisami obiegu dokumentów:

FAQ

Najczęściej zadawane pytania o tabelę _read

01

Czy rejestr dowodzi, że pracownik przeczytał dokument?

Dowodzi, że potwierdził zapoznanie się z nim — czyli wykonał czynność w systemie, która została zapisana z jego loginem i dokładnym czasem. To standardowy sposób dokumentowania obiegu instrukcji i zarządzeń, ale nie należy mylić go z potwierdzeniem zrozumienia treści; ten drugi wymaga sprawdzenia wiedzy.

02

Jak ustalić, kto jeszcze nie potwierdził dokumentu?

Przez zestawienie listy zobowiązanych z zawartością tabeli — brak wiersza oznacza brak potwierdzenia. Sama tabela nie przechowuje informacji o tym, kogo dokument dotyczy, więc krąg zobowiązanych trzeba zdefiniować osobno, na przykład przez rolę albo dział.

03

Czym różni się AKTYWNE od AKTYWNE_SSJOB?

Pierwszy znacznik dotyczy samego wpisu, drugi — jego widoczności dla usługi wykonującej zadania automatyczne, zwykle rozsyłającej przypomnienia. Rozdzielenie ich pozwala wstrzymać monity o konkretnym dokumencie, nie naruszając zapisanych już potwierdzeń.

04

Czy zmiana treści dokumentu unieważnia wcześniejsze potwierdzenia?

Zależy od konfiguracji obiegu. Jeżeli poprawiona wersja zachowuje dotychczasowy numer referencyjny, potwierdzenia pozostają w mocy i nikt nie dowie się o zmianie. Jeżeli dostaje nowy numer, wszyscy muszą potwierdzić ponownie. Drugie rozwiązanie jest zwykle właściwe i warto je ustalić świadomie przy wdrożeniu.

Słownik pojęć

Słownik pojęć

Pojęcia związane z obiegiem dokumentów i dokumentowaniem zgodności.

OObieg dokumentów
Zdefiniowana ścieżka, którą dokument przechodzi między stanowiskami wraz z wymaganymi akceptacjami. Ustala kolejność i odpowiedzialność.
ŚŚlad rewizyjny
Nieusuwalny zapis, kto i kiedy zmienił dane w systemie. Podstawa wiarygodności ewidencji podczas audytu i kontroli.
GGRC
Governance, Risk and Compliance — ład korporacyjny, zarządzanie ryzykiem i zgodność z przepisami. Wymaga dokumentowania procedur i śladu rewizyjnego.
RRODO
Rozporządzenie o ochronie danych osobowych. Wymaga ograniczenia dostępu do danych, rejestrowania operacji na nich i wskazania podstawy przetwarzania.
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.
ŚŚrodki ochrony indywidualnej
Odzież robocza i wyposażenie ochronne przydzielane pracownikowi. Pracodawca musi udokumentować wydanie oraz pilnować terminów wymiany.
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.