Domanda

Sto avendo un problema wee, e sono sicuro che ci sia un / modo più conveniente per raggiungere il più semplice soluzione, ma tutte le ricerche sono gettare fino a spazi vuoti in questo momento!

Ho un db mysql che viene aggiornato regolarmente da pagina php [via un processo di cron] questo si aggiunge o elimina le voci a seconda dei casi.

Il mio problema è che ho anche bisogno di controllare se i dettagli [cioè il numero di telefono o simili] per l'ingresso sono cambiati, ma facendo questo a ogni chiamata non è possibile [non solo non è mi sembra essere eccessivo, ma mi sono limitato da un limite di 3a parte api chiamata] Inoltre non è questo informazioni critiche.

Così ho pensato che potrebbe essere meglio controllare un solo ingresso per chiamata pagina e scorrere le righe / entires con ogni chiamata pagina successiva.

Quale sarebbe il modo migliore di fare questo, cioè tenere traccia di quale voce / riga nella tabella che il prossimo dovrebbe essere controllato?

Ho 2 idee di come implementare questa:

1) L'ID della riga corrente potrebbe essere salvare in un file sul server [sicuramente non il modo migliore]

2) un campo booleano aggiuntivo [verifica] è aggiungere alla tabella, impostata su true sulla prima voce e falso a tutti gli altri. Poi su ogni pagina chiamarla; reperti 'dove controllare = TRUE' esegue il controllo di aggiornamento su questa riga, 'Assegno set = FALSE' 'Set [riga successiva] controllo = TRUE'

Si questo il modo migliore per fare questo, o qualcuno ha qualche sugestion meglio?

grazie in anticipo!

.k

PS dispiace per il titolo

Nessuna soluzione corretta

Altri suggerimenti

Non sono sicuro se questa è una buona soluzione, ma se devo fare ogni notte massicci aggiornamenti, scriverò gli aggiornamenti a una nuova tabella vuota, poi fare uno SQL selezionare per unire le tabelle e dimmi dove sono diversi , poi fare un altro aggiornamento di SQL come

UPDATE table, temptable
SET table.col1=temptable.col1, table.col2=temptable.col2 ......
WHERE table.id = temptable.id;

È possibile memorizzare il timestamp che una riga viene aggiornata in modo implicito utilizzando ON UPDATE CURRENT_TIMESTAMP [ http://dev.mysql.com/doc/refman/5.0/en/timestamp.html] o esplicitamente nel vostro aggiornamento di SQL. Poi tutto quello che dovete fare è selezionare la riga (s) con il timestamp più basso (utilizzando ORDER BY e LIMIT) e si ha la riga successiva da elaborare. Fino a quando ci si assicura che il timestamp viene aggiornato ogni volta.

es. Diciamo che utilizzato il TIMESTAMP campo last_polled_on per memorizzare il tempo chiamata l di fila. Il vostro inserto appare come:

INSERT INTO table (..., last_polled_on) VALUES (..., NOW());

Il tuo aggiornamento appare come:

UPDATE table SET ..., last_polled_on = NOW() WHERE ...;

E la tua selezione per la riga successiva il polling appare come segue:

SELECT ... FROM table ORDER BY last_polled_on LIMIT 1;
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top