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

    [mysql] campi automaticamente incrementati

    Supponiamo che io abbia una tabella che contiene 4 campi float (possiamo chiamarli valore1, valore2, ecc.) + un quinto campo float (chiamiamolo incremento) e un campo tinyint (tipoValore).

    Il campo incremento rappresenta di quanto i campi valore1,2,3,4 devono aumentare nell'unità di tempo, mentre il tinyint indica quale dei 4 campi deve aumentare (solo uno dei 4 aumenta, gli altri devono rimanere costanti).
    Questo significa che non è possibile effettuare un'unico update per tutta la tabella, ma un select, un'elaborazione php e un'update per ogni riga.
    E questo non mi pare un gran chè efficiente, ma non ho idea di come risolverlo.

    Inoltre c'è un altro problema: l'incremento non deve essere a intervalli definiti, ottenibile quindi con un cronjob, ma deve essere in qualche modo continuo e graduale.
    Per capire meglio, si consideri un certo valore di base 1000 e un incremento orario di 60, se il client dopo un minuto dall'inserimento deve ottenere 1001 e non 1000 (valore che otterrebbe con il cronjob orario).

    Qualcuno ha qualche idea di come risolvere queste due questioni?
    Armageddon - Chief Developer

    Stiamo cercando collaboratori!

  2. #2
    Quello che vuoi fare sembrerebbe siano 4 orologi che contano a turno i minuti in modo distribuito random su uno dei 4 presenti.

    Se proprio vuoi fare una cosa del genere non ti rimane che fare un update per ogni record una volta al minuto. Mi sembra una pazzia. Gia' anche l'uso di campi float mi pare molto discutibile.

    Se hai molti record sarebbe presto ingestibile, se ne hai uno solo con 5 campi meglio se fai una tabella con 4 record, uno per ogni campo/valore, es:

    id 1 - valore 123
    id 2 - valore 234
    id 3 - valore 345
    id 4 - valore 456

    e per l'aggiornamento un semplice:

    update tabella
    set valore = valore + 1
    where id = n

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

  3. #3
    sì ma il punto è che ho (o comunque dovrei avere) molti ma molti record

    la tua soluzione però mi ispira, semplicemente vado ad inserire una tabella con

    id progressivo (che non fa mai male), recordId, tipoValore, valoreFloat

    (primary id, unique recordId,tipoValore)

    e gli update li faccio con un join ottimizzato


    grazie per la risposta!
    Armageddon - Chief Developer

    Stiamo cercando collaboratori!

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.