Aiuto relazione database
Moderatore: Staff
Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
- darkstaring
- Linux 3.x
- Messaggi: 657
- Iscritto il: mer 13 ott 2010, 13:55
- Nome Cognome: Francesco Achenza
- Desktop: KDE
- Distribuzione: Arch Linux
- Contatta:
Aiuto relazione database
Sera a tutti ..
Mi sto incasinando tantissimo su delle associazioni tra tabelle sql.
In pratica ho una tabella UTENTI che deve tenere all'interno (nome, pass) per fare un login...
Poi ho altre 2 tabelle, una con le sedi ed un'altra con i dipendenti;
queste 2 tabelle sono relazionate tra loro con un'altra tabella (DIP_SEDI) poichè alcuni dipendenti possono lavorare in più sedi..
Ora il mio problema e che mi è stato chiesto che sia possibile effettuare il login sia come sede (e vedere quindi tutti i dipendenti di quella sede)
o come singolo dipendente..
Voi come avreste fatto le associazioni???
Non sò a dove collegarli sti dipendenti ...
Io pensavo ad un'associazione tra DIP_SEDI e UTENTI in modo che ogni dipendente abbia una passowrd per ogni sede dove lavora
ma credo di fare casino...
Consigli???
Mi sto incasinando tantissimo su delle associazioni tra tabelle sql.
In pratica ho una tabella UTENTI che deve tenere all'interno (nome, pass) per fare un login...
Poi ho altre 2 tabelle, una con le sedi ed un'altra con i dipendenti;
queste 2 tabelle sono relazionate tra loro con un'altra tabella (DIP_SEDI) poichè alcuni dipendenti possono lavorare in più sedi..
Ora il mio problema e che mi è stato chiesto che sia possibile effettuare il login sia come sede (e vedere quindi tutti i dipendenti di quella sede)
o come singolo dipendente..
Voi come avreste fatto le associazioni???
Non sò a dove collegarli sti dipendenti ...
Io pensavo ad un'associazione tra DIP_SEDI e UTENTI in modo che ogni dipendente abbia una passowrd per ogni sede dove lavora
ma credo di fare casino...
Consigli???
- 414N
- Iper Master
- Messaggi: 2922
- Iscritto il: mer 13 feb 2008, 16:19
- Slackware: 15.0
- Kernel: 5.15.19
- Desktop: KDE5
- Località: Bulagna
- Contatta:
Re: Aiuto relazione database
Stiamo parlando di argomenti di teoria dei database o stai già lavorando su un database fisico col quale interagisci da codice (Java, C#, C++ ecc.)?
Servirebbe qualche dettaglio in più, secondo me... Per esempio, quali sono le chiavi primarie ed esterne che hai scelto? Come fai a collegare un nome di un utente alle altre tabelle?
Servirebbe qualche dettaglio in più, secondo me... Per esempio, quali sono le chiavi primarie ed esterne che hai scelto? Come fai a collegare un nome di un utente alle altre tabelle?
- darkstaring
- Linux 3.x
- Messaggi: 657
- Iscritto il: mer 13 ott 2010, 13:55
- Nome Cognome: Francesco Achenza
- Desktop: KDE
- Distribuzione: Arch Linux
- Contatta:
Re: Aiuto relazione database
Sto parlando di un database già creato che sto interfacciando in PHP...
Quest'immagine mostra la struttura del DB per intero, comprese chiavi ecc...
Immagine
Non considerate la tabella utenti_sedi (la avevo creata perchè avevo capito che gli admin potevano gestire più sedi)
Invece ora ho capito che non è così e che
chi deve fare l'accesso è
il dipendente come singolo oppure
l'intera sede e mostrare quindi tutti i dipendenti di quella sede...
Sono ancora in fase testing
non mi prendete in giro
Io avevo intenzione come dicevo prima di relazionare "DIP_SEDI" ad "UTENTI"..
sò che nell'immagine mancano le chiavi esterne.. ma comunque secondo voi potrebbe funzionare aggiungendole???
Se avete qualsiasi consiglio è ben accetto
Grazie
Quest'immagine mostra la struttura del DB per intero, comprese chiavi ecc...
Immagine
Non considerate la tabella utenti_sedi (la avevo creata perchè avevo capito che gli admin potevano gestire più sedi)
Invece ora ho capito che non è così e che
chi deve fare l'accesso è
il dipendente come singolo oppure
l'intera sede e mostrare quindi tutti i dipendenti di quella sede...
Sono ancora in fase testing
non mi prendete in giro
Io avevo intenzione come dicevo prima di relazionare "DIP_SEDI" ad "UTENTI"..
sò che nell'immagine mancano le chiavi esterne.. ma comunque secondo voi potrebbe funzionare aggiungendole???
Se avete qualsiasi consiglio è ben accetto
Grazie
- darkstaring
- Linux 3.x
- Messaggi: 657
- Iscritto il: mer 13 ott 2010, 13:55
- Nome Cognome: Francesco Achenza
- Desktop: KDE
- Distribuzione: Arch Linux
- Contatta:
Re: Aiuto relazione database
Anche oggi mi sto azzuffando ...
Non mi quadra la relazione per gli utenti..
Relazionando [utenti con dipendenti] & [utenti con sedi]
avrei 2 relazioni 1A1... quindi rindondanza....
Mentre invece collegando gli utenti a dip_sedi metto in relazione solo i dipendenti.....
Mentre ancora, mettendo i campi utente e pass direttamente nelle tabelle utenti e sedi credo di far ancora più casino...
E' il primo login che faccio..
Consigli?
Non mi quadra la relazione per gli utenti..
Relazionando [utenti con dipendenti] & [utenti con sedi]
avrei 2 relazioni 1A1... quindi rindondanza....
Mentre invece collegando gli utenti a dip_sedi metto in relazione solo i dipendenti.....
Mentre ancora, mettendo i campi utente e pass direttamente nelle tabelle utenti e sedi credo di far ancora più casino...
E' il primo login che faccio..
Consigli?
- lablinux
- Linux 4.x
- Messaggi: 1212
- Iscritto il: gio 27 nov 2008, 12:23
- Desktop: Gnome
- Distribuzione: Debian testing
- Località: Rho
Re: Aiuto relazione database
Quindi, ci sono gli utenti e le sedi.
Un utente non appartiene a pù sedi, ma ad una sola?
Una persona (fisica) accende il pc e con user e password può vedere tutti gli utenti legati alla sede?
Qaul'è la differenzza tra utente e dipendente? Un dipendete è un utente?
E' questo che vorresti fare?
Un utente non appartiene a pù sedi, ma ad una sola?
Una persona (fisica) accende il pc e con user e password può vedere tutti gli utenti legati alla sede?
Qaul'è la differenzza tra utente e dipendente? Un dipendete è un utente?
E' questo che vorresti fare?
- darkstaring
- Linux 3.x
- Messaggi: 657
- Iscritto il: mer 13 ott 2010, 13:55
- Nome Cognome: Francesco Achenza
- Desktop: KDE
- Distribuzione: Arch Linux
- Contatta:
Re: Aiuto relazione database
Un utente non appartiene a più sedi, ma ad una sola?lablinux ha scritto:Quindi, ci sono gli utenti e le sedi.
Un utente non appartiene a pù sedi, ma ad una sola?
Una persona (fisica) accende il pc e con user e password può vedere tutti gli utenti legati alla sede?
Qaul'è la differenzza tra utente e dipendente? Un dipendete è un utente?
E' questo che vorresti fare?
Più o meno, un 'utente dovrebbe poter essere sia una sede che un dipendente... se dipendente vede solo se sesso altrimenti tutti i dipendenti
Una persona (fisica) accende il pc e con user e password può vedere tutti gli utenti legati alla sede?
Se si ci logga come sede si devono vedere tutti i dipendenti di quella sede..
Qaul'è la differenzza tra utente e dipendente? Un dipendete è un utente?
Si...Il dipendente è un'utente come lo è la sede.
....Io stavo pensando ad un flag da usare nel form del login, magari una <select> con il tipo (dipendente o sede) per capire quale tabella deve interrogare
ed inserire nomeutente e passwd direttamente nella tabella del dipendente o della sede....
- lablinux
- Linux 4.x
- Messaggi: 1212
- Iscritto il: gio 27 nov 2008, 12:23
- Desktop: Gnome
- Distribuzione: Debian testing
- Località: Rho
Re: Aiuto relazione database
il campo di selezione non mi piace molto. L'informazione se lo user sia solo se stesso o l'azienda dovrebbe trovarsi sulla tabella user, ad esempio in un campo ruoli (roles)
1 = dipendente
2 = sede
3 = entrambe.
Ed in base al ruolo (1 o 2 o 3), mostri i dati.
1 = dipendente
2 = sede
3 = entrambe.
Ed in base al ruolo (1 o 2 o 3), mostri i dati.
- darkstaring
- Linux 3.x
- Messaggi: 657
- Iscritto il: mer 13 ott 2010, 13:55
- Nome Cognome: Francesco Achenza
- Desktop: KDE
- Distribuzione: Arch Linux
- Contatta:
Re: Aiuto relazione database
Si.. quello lo avevo già fatto propio come dici tu con il campo admin... Ma non avevo pensato che non ho bisogno di fare nessuna relazione, volevo a tutti i costi fare questa relazione
Quindi mi confermi che posso evitare relazioni da UTENTI?...
Quindi mi confermi che posso evitare relazioni da UTENTI?...
- lablinux
- Linux 4.x
- Messaggi: 1212
- Iscritto il: gio 27 nov 2008, 12:23
- Desktop: Gnome
- Distribuzione: Debian testing
- Località: Rho
Re: Aiuto relazione database
Una relazione serve, utenti (1-n ) sedi.
- darkstaring
- Linux 3.x
- Messaggi: 657
- Iscritto il: mer 13 ott 2010, 13:55
- Nome Cognome: Francesco Achenza
- Desktop: KDE
- Distribuzione: Arch Linux
- Contatta:
Re: Aiuto relazione database
Perchè?non capisco la relazione... una volta che qualcuno si logga, vedo il tipo, vedo chi è
e poi in base al tipo faccio quello che serve..no?
Non posso accedere anche così a i dati?
e poi in base al tipo faccio quello che serve..no?
Non posso accedere anche così a i dati?
- 414N
- Iper Master
- Messaggi: 2922
- Iscritto il: mer 13 feb 2008, 16:19
- Slackware: 15.0
- Kernel: 5.15.19
- Desktop: KDE5
- Località: Bulagna
- Contatta:
Re: Aiuto relazione database
Se il problema è solo un problema di visualizzazione non hai bisogno di creare tante associazioni.
Una volta che l'utente (che sia dipendente semplice o sede non importa) ha effettuato il login, tu il suo nome lo sai ed è proprio tramite quello che puoi individuarlo all'interno della tabella dipendenti o sedi, giusto?
Assodato questo e appurato che l'utente attualmente "loggato" sia una sede, puoi ricavare l'ID della sede con una semplice SELECT basata sul nome che conosci, poi ricavare tutti i dipendenti della sede con un join tra dip_sedi e dipendenti dove l'ID della sede è quello che hai ricavato precedentemente.
Ha senso o non ho capito una mazza?
Una volta che l'utente (che sia dipendente semplice o sede non importa) ha effettuato il login, tu il suo nome lo sai ed è proprio tramite quello che puoi individuarlo all'interno della tabella dipendenti o sedi, giusto?
Assodato questo e appurato che l'utente attualmente "loggato" sia una sede, puoi ricavare l'ID della sede con una semplice SELECT basata sul nome che conosci, poi ricavare tutti i dipendenti della sede con un join tra dip_sedi e dipendenti dove l'ID della sede è quello che hai ricavato precedentemente.
Ha senso o non ho capito una mazza?
- darkstaring
- Linux 3.x
- Messaggi: 657
- Iscritto il: mer 13 ott 2010, 13:55
- Nome Cognome: Francesco Achenza
- Desktop: KDE
- Distribuzione: Arch Linux
- Contatta:
Re: Aiuto relazione database
Direi di si... Anche io adesso sono arrivato a questa conclusione....nessuna relazione da utenti, ma solo un controllo al momento del login.
Stavo cercando di incasinarmi da solo tentando di associarla a le altre tabelle a tutti i costi ..
Adesso comunque provo a fare delle prove per vedere su tutto funziona..
Farò sapere come è andata...
Grazie a tutti
Stavo cercando di incasinarmi da solo tentando di associarla a le altre tabelle a tutti i costi ..
Adesso comunque provo a fare delle prove per vedere su tutto funziona..
Farò sapere come è andata...
Grazie a tutti
- lablinux
- Linux 4.x
- Messaggi: 1212
- Iscritto il: gio 27 nov 2008, 12:23
- Desktop: Gnome
- Distribuzione: Debian testing
- Località: Rho
Re: Aiuto relazione database
Mi permetto di darti un consiglio.
I dati che devi usare, note utente, id utente, ruoli, id sede, e altri dati che ti servono in modo ricorrente, salvale in una sessione. Altrimenti, ad ogni richiesta di una pagina devi fare una query, e se ci sono tanti utenti collegati, se il server su cui gira il db è lento (magari per elaborazioni batch), rischi di rallentare l'applicativo.
I dati che devi usare, note utente, id utente, ruoli, id sede, e altri dati che ti servono in modo ricorrente, salvale in una sessione. Altrimenti, ad ogni richiesta di una pagina devi fare una query, e se ci sono tanti utenti collegati, se il server su cui gira il db è lento (magari per elaborazioni batch), rischi di rallentare l'applicativo.
- lablinux
- Linux 4.x
- Messaggi: 1212
- Iscritto il: gio 27 nov 2008, 12:23
- Desktop: Gnome
- Distribuzione: Debian testing
- Località: Rho
Re: Aiuto relazione database
[OT mode]lablinux ha scritto:Mi permetto di darti un consiglio.
I dati che devi usare, note utente, id utente, ruoli, id sede, e altri dati che ti servono in modo ricorrente, salvale in una sessione. Altrimenti, ad ogni richiesta di una pagina devi fare una query, e se ci sono tanti utenti collegati, se il server su cui gira il db è lento (magari per elaborazioni batch), rischi di rallentare l'applicativo.
sicuro di usare php e mysql?
[/OT mode]
- darkstaring
- Linux 3.x
- Messaggi: 657
- Iscritto il: mer 13 ott 2010, 13:55
- Nome Cognome: Francesco Achenza
- Desktop: KDE
- Distribuzione: Arch Linux
- Contatta:
Re: Aiuto relazione database
Si, devo usare php.. per adesso...
Sto includendo in ogni pagina, una pagina che ne include molte altre.. tra qui quella che verifica e mantiene aperta la sessione...
Ho fatto questa piccola procedura per vedere se si è loggati..altrimenti si viene reindirizzati alla pagina di login
Sono alle prime armi, e non sò quanto possa essere affidabile questo.. comunque ho fatto anche un'altra pagina che fà più o meno quello che fà lo script quì sopra.. solo che questo permette l'accesso a determinate pagine in base a chi è loggato
Se avete consigli sono ben accetti..
Sto includendo in ogni pagina, una pagina che ne include molte altre.. tra qui quella che verifica e mantiene aperta la sessione...
Ho fatto questa piccola procedura per vedere se si è loggati..altrimenti si viene reindirizzati alla pagina di login
Codice: Seleziona tutto
session_start();
session_regenerate_id(TRUE);
//Controlla se non è loggato
if(!isset($_SESSION['nome']))
{
//se non e' nella pag di login ti ci porta
if(! preg_match("*INDEX/LOGIN*",$pwd))
{
print ' <script language="JavaScript" type="text/javascript">
window.setTimeout ("location.href=(\''.$tmp.'INDEX/LOGIN/login.php\')", 0);
</script>';
}
}
else //SE E' LOGGATO
{
/*#####################scrivi chi e loggato###############*/
$logout=$tmp."INDEX/LOGIN/logout.php";
print "Sei loggato come \t".$_SESSION['nome']."<a href=\"$logout\"><input type=\"submit\" value=\"logout\"></a>";
Codice: Seleziona tutto
/*ESEMPIO PROTEGGE PAGINA
if( (preg_match("*INDEX/directory_proteggere*",$pwd) ) && ($_SESSION['admin'] != $utentente_autorizzato) )
{
print '<h3>Non sei autorizzato a vedere questa pagina<h3>';
print "
<script language=\"JavaScript\" type=\"text/javascript\">
window.setTimeout ("location.href=(\''.$tmp.'INDEX/index.php\')", 1500);
</script>';
}
*/