Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Consiglio su inserimento utente in db e relativo Id

    Buongiorno a tutti.

    Sto lavorando su un db in cui e' possibile inserire due tipologie di utenti:
    - utente amministratore (che gestisce varie aree del sito al pubblico ecc..ecc..)
    - utente utilizzatore (che accede a un'area del sito pubblico ma dovendosi registrare e loggare)

    Purtroppo devo lavorare su questo Db che mi sono gia' trovato fatto e non posso effettuare delle modifiche troppo pesanti, ma posso solo lavorare a livello di php.

    Il problema e' questo:
    nel Db sono presenti due campi:
    uno utentiAmministratori (con circa 100 utenti registrati) e uno utentiPubblici (con circa 7500 utenti registrati)

    sono due campi simili che suddividono gli utenti in amministratori e pubblici (che hanno ovviamente hanno diritti diversi e accedono su due aree diverse del sito), in pratica se un utente Amministratore e' registrato e accede alla parte privata, per accedere alla parte pubblica deve creare un altro utente Pubblico.
    Questo mi potrebbe anche andare bene.

    Il problema sorge quando si registra un nuovo utente Amministratore, se ha lo stesso id dell' utente Privato, crea dei problemi a livello di storico e di inserimento dati per l'utente Privato.

    Attualmente, per gestire la cosa, quando inserisco un utente Amministratore vado a vedere negli utenti Pubblici se c'e' un Id libero e lo assegno all'utente Amministratore.

    Vorrei poter automatizzare direttamente da inserimento Utente Amministratore senza dover andare ogni volta a spulciare gli id per cercarne uno libero, come potrei Procedere ?

    Ciao, grazie

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Semplicemente non puoi.
    L'automazione richiede comunque del codice, ed è quello che stai già facendo.
    Maledici chi ha realizzato il DB e tira avanti se non puoi apportare modifiche.

  3. #3
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Semplicemente non puoi.
    L'automazione richiede comunque del codice, ed è quello che stai già facendo.
    Maledici chi ha realizzato il DB e tira avanti se non puoi apportare modifiche.
    Buongiorno Alhazred e grazie,
    pero' posso modificare il codice ma non il Db, ma se facessi una cosa tipo:
    leggo tutti gli Id del campo Utenti Pubblici e trovo gli Id liberi e poi lo assegno in inserimento al nuovo utente amministratore ? Non si potrebbe fare cosi' ?

    PS: non posso manco maledirlo tanto perche' e' passato a miglior vita, spero che ovunque sia gestisca meglio i suoi Db....

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Io avevo capito che fosse già così che fai.

    Sì il metodo è questo, magari posta la struttura delle tabelle coinvolte, così si vede se c'è un sistema diverso da usare.

  5. #5
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Io avevo capito che fosse già così che fai.

    Sì il metodo è questo, magari posta la struttura delle tabelle coinvolte, così si vede se c'è un sistema diverso da usare.
    Si faccio cosi' ma in maniera autonoma....

    Comunque la tabella utenti Amministratori e' strutturata cosi':

    codice:
     id | name | surname | password | risultati_pagina | permessi | temp | attiva | ultimoAccesso
    Mentre la tabella Utenti Pubblici, come tu ho anticipato e' molto simile alla tabella utenti amministratori, ci sono solo due campi in piu' e uno in meno:

    codice:
     id | name | surname | password | risultati_pagina | temp | attiva | ultimoAccesso | pm | valutatore

  6. #6
    perché vuoi cercare gli ID vuoti per assegnarli? non basta aggiungere in fondo?

  7. #7
    No perche' potrebbero gia' esserci e devono essere univoci per le due tabelle, la tabella Utenti Amministratori non deve contenere id uguali alla tabella Utenti Pubblici e viceversa.

  8. #8
    Quote Originariamente inviata da _Micky_73 Visualizza il messaggio
    No perche' potrebbero gia' esserci e devono essere univoci per le due tabelle, la tabella Utenti Amministratori non deve contenere id uguali alla tabella Utenti Pubblici e viceversa.
    mi sono spiegato male: do per scontato che prima lo cerchi e poi lo inserisci solo se non c'è già; ma nel momento in cui hai capito che lo devi inserire, perché perdere tempo a cercare un buco e non andare invece direttamente a inserire in fondo un Id nuovo?

  9. #9
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Se ho ben capito, la situazione è la seguente: nella tabella admin non può esserci un ID=2 se nella tabella user c'è già un ID=2 e viceversa, questo perché si discrimina il ruolo di chi effettua il login cercando il relativo ID nelle due tabelle e deve essere trovato solo in una per evitare ambiguità.

    E' così?
    In tal caso io varierei un po' la situazione: nel form di login aggiungi un campo in cui chiedi all'utente che si sta loggando se è un admin o un utente pubblico, a seconda di cosa sceglie cerchi in una o nell'altra tabella, tanto poi oltre all'ID verifichi anche che la password corrisponda.
    In questo modo puoi inserire dove ti pare senza controllare gli ID che vengono assegnati.

  10. #10
    Utente di HTML.it L'avatar di abellos
    Registrato dal
    Feb 2002
    Messaggi
    384
    Ciao, potresti fare una union sull'id delle due tabelle e prendere l'ultimo id + 1 per il nuovo inserimento
    Da un grande potere derivano grandi responsabilità

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.