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

    Accesso univoco a record su tabella

    Buongiorno,

    mi consigliate un modo rapido ed efficace (attendibile e sicuro), per non permettere o per controllare che due utenti non possano entrare ad interagire nello steso record della stessa tabella, ma ovviamente possano liberamente interagire nella medesima tabella su record diversi?

    Grazie

    SK

  2. #2
    Quale è la tua reale necessità? Che cosa devi implementare?

  3. #3
    Originariamente inviato da filippo.toso
    Quale è la tua reale necessità? Che cosa devi implementare?
    Fai conto di avere una sorta di gestionale dove accedono in tot utenti e tot amministratori.

    Ora se io ho 1000 record, diciamo del persoanle, mi ritrovo ad avere 10/20/30 persone che possono contemporaneamente aggiungere/modificare/cancellare un tal record.
    Se io non controllo chi fa cosa, per semplificare, se anche solo in due entriamo in modifica dello stesso record, l'ultimo che salva le modifiche ovviamente sovrascrive le modifiche di chi ha salvato poco prima.

    Io vorrei intercettare chi sta facendo cosa, in modo che se il tal utente entra in modifica dello stesso record venga bloccato ed avvisato: "il record è attualmente in uso dall'utente Pippo".

    Così evito il problema di cui prima, e solo quando l'utente che sta impegnando quel dato record, libero l'accesso agli altri utenti.

    Spero di essermi spiegato, cosa che spesso non mi riesce

    Grazie

  4. #4
    Un metodo è aggiungere due campi alla tabella. Un timestamp e l'ID utente.

    Il timestamp a NULL indica che nessun utente sta elaborando il record
    Il timestamp con un valore indica che l'utente con l'ID indicato nell'altro campo sta elaborando il record.
    Il timestamp è utile per eseguire eventuali override (es. l'utente originale è entrato in modifica un'ora fa, è improbabile che la eseguirà). A fine giornata un cron si dovrebbe occupare di eseguire la pulizia (es. impostare tutti i timestamp a NULL)

  5. #5
    Originariamente inviato da filippo.toso
    Un metodo è aggiungere due campi alla tabella. Un timestamp e l'ID utente.

    Il timestamp a NULL indica che nessun utente sta elaborando il record
    Il timestamp con un valore indica che l'utente con l'ID indicato nell'altro campo sta elaborando il record.
    Il timestamp è utile per eseguire eventuali override (es. l'utente originale è entrato in modifica un'ora fa, è improbabile che la eseguirà). A fine giornata un cron si dovrebbe occupare di eseguire la pulizia (es. impostare tutti i timestamp a NULL)
    Si, in effetti questo era un metodo a cui avevo pensato, oppure una sorta di log file dove scivo i dati che mi interessano e lo aggiorno, solo che anche qui rimaneva il medesimo problema del sovrascrivere il file....
    Mi sembra che in ASP esista un file o una funzione tipo. "application" che fa proprio questo di suo, in php desumo non esista nulla di simile visto che non l'hai citata, una sorta di "cookie" globale.

    Quindi tu agiresti in questa direzione, campi timestamp e id_occupante, questo però comporta che questi 2 campi io li debba agiungere in tutte le tabelle

  6. #6
    Potresti fare una tabella esterna log.

    Id_utente, timestamp, pagina sul quale si lavora.

    poi dentro ogni pagina di edit, fai il controllo per quella pagina sulla tabella log

  7. #7
    Originariamente inviato da Samleo
    Potresti fare una tabella esterna log.

    Id_utente, timestamp, pagina sul quale si lavora.

    poi dentro ogni pagina di edit, fai il controllo per quella pagina sulla tabella log
    Anche a questo avevo pensato, adesso ci ragiono su e vedo quale fa più al mio caso, grazie ad entrambi, in caso vi venisseroa altre idee, io sono qui

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 © 2025 vBulletin Solutions, Inc. All rights reserved.