Dati di gestione degli utenti: la necessità di un nome utente e una password

0

Avrei chiesto questo su StackOverflow se avesse il codice, ma è più sull'idea / concetto quindi ho chiesto qui.

Sto lavorando sull'interfaccia utente del nostro sistema di inventario quando ho scoperto che quando si registra un utente nel sistema, il nome utente e la password dell'utente sono facoltativi . Ho chiesto al nostro supervisore perché è così. Ha detto che nel sistema ci sono "contenitori di beni" (si pensi alle scatole con giocattoli) dove assegniamo attraverso il sistema i dipendenti per gestire questi contenitori. I dipendenti devono essere registrati nel sistema, ma ad alcuni di essi non viene concesso l'accesso al sistema, quindi non è utile fornire loro nomi utente e password .

Ma penso che la sua argomentazione sia sbagliata, davvero sbagliata perché ogni volta che sento "no username no password" mi fa rabbrividire dato che è anche un account senza password, ad accesso libero.

E quindi chiedo:

  • Quale sarebbe la corretta progettazione del database per separare questo impiegato di sistema-utente e quello non-utente di sistema che non usa questo nome utente, nessuna combinazione di password?

    Attualmente, come suggerisce la descrizione, abbiamo una singola tabella con uid, nome utente, password con hash e altri campi con dati utente aggiuntivi.

  • Per dimostrargli un punto, mi piacerebbe sapere perché la memorizzazione di un nome utente e una password vuoti per un account è totalmente sbagliata per i dipendenti registrati non dell'utente di sistema .

  • Quali sono le alternative ad avere questo sistema? So che è meglio tenere in una tabella gli utenti registrati ma non ho mai visto questa situazione in cui ci sono utenti registrati che non hanno accesso a un sistema. È come se ti venisse assegnato un account Facebook, profili e tutti ma non hai un nome utente e una password per questo (o in questo caso, vuoto)

posta Joseph 20.07.2012 - 18:48
fonte

3 risposte

4

Suggerirei due entità separate: i dipendenti che possono essere assegnati per gestire i contenitori e gli utenti registrati.

Potresti collegare gli utenti registrati ai loro record dei dipendenti.

In questo modo non avrai dipendenti spurie con username / password vuote.

    
risposta data 20.07.2012 - 19:06
fonte
1

Sembra che i dipendenti che si trovano nel sistema ma che non hanno nome utente / password siano una classe speciale di dipendenti, chiamiamolo "dipendenti di gestione dei contenitori" dalla tua descrizione: "assegniamo tramite i dipendenti del sistema per gestire questi contenitori ".

Potresti spostare questi dipendenti speciali in una tabella separata "bin-handler". Inoltre, sposta i nomi utente e le password in una tabella solo per quello. In questo modo puoi comunque assegnare questi dipendenti a dei contenitori, ma non si trovano nella stessa tabella della tabella con nomi utente e password. Puoi quindi fare riferimento alla tabella Employee principale tramite una chiave esterna.

Se la suddivisione in tabelle separate non funzionerà per te, potresti avere un campo "può accedere", che indica al sistema se a quel Dipendente è consentito accedere o se esiste solo per essere assegnato a bidoni.

    
risposta data 20.07.2012 - 19:05
fonte
0

Potrebbe non essere così importante in quale modo lo fai, ma avere una tabella utente e una tabella dei dipendenti potrebbe avere più senso. In questo momento hai dipendenti che non sono utenti, un giorno potresti avere utenti che non sono dipendenti. Rendendoli separati probabilmente modella un po 'meglio il mondo.

D'altra parte, potrebbe essere che puoi incapsulare il tuo codice in modo tale da rendere più semplice la modifica in un secondo momento. In tal caso, puoi semplicemente fare la cosa più veloce ora e preoccuparti di questo quando arriverà il momento.

    
risposta data 20.07.2012 - 19:08
fonte

Leggi altre domande sui tag