Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012

    codifica-decodifica timestamp

    buonasera a tutti

    ho un DB in cui devo immagazzinare in un campo un numero di ordine, e volevo usare il timestamp come codice ordine, così da avere un codice unico che funga anche da riferimento per la data di acquisto.

    il problema è che mi hanno detto che il timestamp ( e non gli dò tutti i torti ) è un attimino improponibile in quanto è effettivamente troppo lungo.

    come posso codificarlo-decodificarlo per avere una stringa piu piccola di 6-8 caratteri?

    grazie a tutti per il supporto


    Mirko
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  2. #2
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    più che altro mi viene da chiedere, sei sicuro che sia unico?

    E' vero che il caso in cui vengano salvati 2 ordini nello stesso identico secondo è abbastanza remoto, però c'è sempre il rischio...

    Io semplicemente assegnerei un autoincrement al campo del numero di ordine, o dopo è troppo corto?


    Oppure se fosse:

    14120701 -> per indicare il primo ordine del 14-12-2007?

    ciao

  3. #3
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    Originariamente inviato da gianiaz
    più che altro mi viene da chiedere, sei sicuro che sia unico?
    E' vero che il caso in cui vengano salvati 2 ordini nello stesso identico secondo è abbastanza remoto, però c'è sempre il rischio...
    [/QUOTE]

    è vero il rischio esiste sempre, remoto o meno che sia, ma del resto in certe situazioni si sceglie sempre il meno peggio....

    Io semplicemente assegnerei un autoincrement al campo del numero di ordine, o dopo è troppo corto?
    un auto_increment puro però non mi da riferimenti....

    Oppure se fosse:

    14120701 -> per indicare il primo ordine del 14-12-2007?
    sarebbe valido se sapessi che non si superano i 99 ordini, sennò esco dal range delle/degli 8 cifre/caratteri...
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  4. #4
    Utente di HTML.it L'avatar di Graboid
    Registrato dal
    Oct 2004
    Messaggi
    619
    Secondo me la siìoluzione migliore è il classico campo per l'id autoincrement e un ulteriore campo per il timestamp.

    Anche se l'idea di usare un solo campo è buona forse stai rischiando di ottimizzare troppo.

  5. #5
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    Originariamente inviato da dottwatson
    E' vero che il caso in cui vengano salvati 2 ordini nello stesso identico secondo è abbastanza remoto, però c'è sempre il rischio...
    è vero il rischio esiste sempre, remoto o meno che sia, ma del resto in certe situazioni si sceglie sempre il meno peggio....


    un auto_increment puro però non mi da riferimenti....



    sarebbe valido se sapessi che non si superano i 99 ordini, sennò esco dal range delle/degli 8 cifre/caratteri... [/QUOTE]

    se vale il discorso di azzerare la numerazione ogni anno puoi usare ggmm e ti avanzano 4 cifre.

    ciao

  6. #6

    Re: codifica-decodifica timestamp

    Originariamente inviato da dottwatson
    buonasera a tutti

    ho un DB in cui devo immagazzinare in un campo un numero di ordine, e volevo usare il timestamp come codice ordine, così da avere un codice unico che funga anche da riferimento per la data di acquisto.

    il problema è che mi hanno detto che il timestamp ( e non gli dò tutti i torti ) è un attimino improponibile in quanto è effettivamente troppo lungo.

    come posso codificarlo-decodificarlo per avere una stringa piu piccola di 6-8 caratteri?

    grazie a tutti per il supporto


    Mirko
    andresti contro ad una delle regole per ottenere una buona chiave candidata a primaria.

    La chiave primaria deve identificare un record e non deve avere alcun riferimento al contenuto della tupla.

    Quindi id autoincrement e un campo data. Il resto e' mancia.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #7
    Se hai bisogno di un codice univoco che abbia una lunghezza fissa, prova ad usare un id autoincrement zerofill.
    Se lo imposti a 5 caratteri il primo record sarà:

    00001 e così via!

    Questo è un codice univoco blindato ad una lunghezza fissa. Attenzione però perché se hai la lunghezza fissa PRIMA O POI supererai il numero massimo delle righe (in caso di 5 cifre abbastanza prima)!
    I dilettanti costruirono l'Arca, i professionisti il Titanic!

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.