Witam,
utworzylem schemat bazy i chcialbym utworzyc przejrzysty system logow. Powiedzmy, ze uzytkownik chcialby dodac rekord, w tabeli z logami chcialbym aby zapisala sie informacja o statusie (sukces, ostrzezenie, blad), czasie, uzytkowniku i tabeli na ktorej ktos chcial pracowac.
Powiedzmy, ze administrator dodaje nowego uzytkownika, udaje mu sie to, nastepnie chce przydzielic go do pewnej grupy uzytkownikow, operacja sie powiodla, ale z ostrzezeniem, gdy nowoutworzony user chce dodac rekord do tabeli 'Patch' operacja konczy sie bledem.
Czy jest mozliwe zachowanie tych informacji w jednej tabeli? Czy jest taka licznosc jak 0 do N w bazach?
Jeżeli na Oraclu to jest tam gdzieś odpowiedni płatny moduł.
Jeżeli na MySQLu to należy uzbroić się się w odpowiednie triggery po stronie bazy danych lub jakiś zwykły system logowania po stronie UI.
Obecnie pracuje na MySQLu, ale mialem nadzieje na jakies uniwersalne rozwiazanie.
Czyli jesli dobrze rozumiem, tworzenie tabeli nie jest dobrym rozwiazaniem?
To zależy w którym miejscu chcesz wykonać operacje logowania. Jeżeli bezpośrednio na bazie to musisz stworzyć tabelę i w triggerze wstawiać do niej informacje.
http://www.futhark.ch/mysql/116.html tu masz wstęp. Funkcję pobierającą aktualnego usera.
login i hasło do samej bazy jest ustawione w aplikacji na sztywno. Jest osobna tabela uzytkownikow juz w samej DB o ktora opiera sie dostep do dalszej czesci aplikacji, przynajmniej zawsze tak robilem do tej pory.
Podaje link do przykladowego schematu:
http://img511.imageshack.us/img511/6624/hereitis.jpg
Tabela Logs i Action sa moimi nieudanymi probami osiagniecia celu ;).
Teraz powiedzmy uzytkownik dodal rekord do tabeli Movie i w tabeli Logs zapisuje teraz wszystkie interesujace mnie informacje oprocz tego, ze operacja byla wykonywana na takiej a takiej tabeli.