Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2013
    Messaggi
    3

    Chiave Univoca Intero Lungo

    Ciao a tutti avrei la necessità di creare un tabella ordine la cui chiave sia un intero lungo che utilizzo come chiave univoca.
    Mi spego meglio, ho una tabella (ORDINE) struttrata cosi:
    -ID_ordine
    -valore_ordine
    -ora_ordine
    -data_ordine
    e cosi via...

    Fino ad oggi il campo ID_ordine era un contatore, così in fase di creazione di un nuovo record la chiave era univoca e non c'era il rischio che fosse duplicata.
    il campo ID_ordine lo utilizzavo come numero ordine da comunicare all'utente, e il tutto funzionava correttamente.
    Però adesso ho l'esigenza che il campo ID_ordine sia un intero lungo (non deve essere più solamente un numero ma al numero devo unire l'anno corrente), ovviamente in access seleziono che sia indicizzato (Duplicati non ammessi) e in fase di creazione di un nuovo ordine lo devo incrementare manualmente.

    Pensavo di fare cosi:
    -leggo l'ultimo record (al quale tolgo la parte dell'anno)
    -creo un nuovo record mettendo come ID_ordine il numero precedente incrementato di 1

    Il mio dubbio è questo: se due utenti (o più) fanno la richiesta nel medesimo istante, asp come si comporta?
    si tenterebbe si duplicare la chiave e darebbe errore? oppure l'accesso è esclusivo per un utente e gli altri vengono messi in stand-by? (dubito...)

    Chi mi sa aiutare???
    grazie in anticipo...

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Ciao e benvenuta/o se all'accesso del sito instanzi una session.id (cosi hai univocità assoluta) e a questa aggiungi l'anno non sei a posto?
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2013
    Messaggi
    3
    Originariamente inviato da cavicchiandrea
    Ciao e benvenuta/o se all'accesso del sito instanzi una session.id (cosi hai univocità assoluta) e a questa aggiungi l'anno non sei a posto?
    ciao e grazie per la risposta...
    potrebbe essere una soluzione, ma l'id di sessione non potrebbe essere ripetuta?
    scusa se te lo chiedo ma non ho mai usato session.id

    con il metodo che avevo elencato potrebbe verificarsi l'errore come penso?
    Volevo usare un numero sequnziale (tipo 2313 dove le ultime due cifre sono l'anno) così che al cambio dell'anno la numerazione torna a 0 (es. 114)

    adesso faccio qualche prova con session.id

    ciao e grazie

  4. #4
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,783
    non ho capito bene il problema, ma puoi:
    -mantenere l'id contatore univoco (per sicurezza, serve sempre!)
    -creare in nuovo campo "ordine" (numerico) composto da anno+N_ordine
    (occhio a non complicarti la vita più del necessario)
    quindi avrai sempre un prefisso yyyy più un numero incrementabile a tua discrezione

  5. #5
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Originariamente inviato da robycre
    ciao e grazie per la risposta...
    potrebbe essere una soluzione, ma l'id di sessione non potrebbe essere ripetuta?
    scusa se te lo chiedo ma non ho mai usato session.id
    Assolutamente no
    con il metodo che avevo elencato potrebbe verificarsi l'errore come penso?
    Difficile ma non impossibile, molto dipende dalla mole degli utenti/clienti e ordini, con pochi direi impossibile con molti + probabile
    Volevo usare un numero sequnziale (tipo 2313 dove le ultime due cifre sono l'anno) così che al cambio dell'anno la numerazione torna a 0 (es. 114)

    adesso faccio qualche prova con session.id

    ciao e grazie
    Quando ho fatto i carrelli ho sempre usato session.id, ma di strade ne ai altre la session la ritengo la strada più diretta e semplice
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2013
    Messaggi
    3
    Originariamente inviato da Vincent.Zeno
    non ho capito bene il problema, ma puoi:
    -mantenere l'id contatore univoco (per sicurezza, serve sempre!)
    -creare in nuovo campo "ordine" (numerico) composto da anno+N_ordine
    (occhio a non complicarti la vita più del necessario)
    quindi avrai sempre un prefisso yyyy più un numero incrementabile a tua discrezione
    Praticamente invece di avere un contatore automatico vorrei avere un numero che incremento io.
    Questo perchè quando il sistema riconosce il cambiamento dell'anno questo numero riparto da 1.
    A questo numero vorrei aggiungere le ultime due cifre dell'anno, così che quando scatta il nuovo anno non mi ritrovo doppi id, e avrei una cosa del genere:
    113
    213
    ...
    ...
    xxx13

    al nuovo anno:
    114
    214
    e così via

    A questo punto mi sa che prendo in cosiderazione la tua idea a creo un nuovo campo...mi sa che è l'unica soluzione...

    Credo anche che l'oggetto session non vada bene, perchè se lo stesso utente (stessa sessione) fa più acquisti mi frega... ma non l'ho ancora provato...

  7. #7
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,783
    terrei comunque una numerazione del tipo 20130001 (con prima l'anno),
    semplice da ordinare e rintracciare

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.