-
Ehi! C'e` la lista dei "tuoi thread"...Scritto daaltgutente che non utieneil 2012-02-03 04:32:34.0 alle 2012-02-03 04:32:34.0Trollate totali: 11540Finalmente!

Potenza del PHP...-
Re: Ehi! C'e` la lista dei "tuoi thread"...Scritto daavvelentaniCubicolarioil 2012-02-03 07:21:29.0 alle 2012-02-03 07:21:29.0Trollate totali: 18184Scritto da: altg
> Finalmente!
> Potenza del PHP...
Purtroppo e` una query lenta, forse la tolgo.I think happiness is love
- Vladimir Putin-
Re: Ehi! C'e` la lista dei "tuoi thread"...Scritto daaltgutente che non utieneil 2012-02-03 07:47:34.0 alle 2012-02-03 07:47:34.0Trollate totali: 11540> > Finalmente!

> > Potenza del PHP...
>
> Purtroppo e` una query lenta, forse la tolgo.
Non so come abbiate fatto qui, ma se puo` servire, su Postline io ho una lista FIFO di tutti i messaggi postati da chiunque, abbastanza lunga da durare - di solito - almeno qualche giorno, prima che il messaggio piu` vecchio venga cancellato dalla lista; filtro quella lista per nome utente per generarne una che ha i post dell'utente in questione.
Per fare qualcosa anche per i post piu` vecchi, mantengo un log dei thread iniziati da un utente, e lo salvo nel record dell'utente.
Per renderle veloci, Postline registra tutti gli ID che riguardano un messaggio, cioe` non solo l'ID del messaggio ma anche quello del thread e del forum di appartenenza, insieme a un estratto dell'inizio del testo, cosi` puo` leggere tutto da li`; pero` diventa un po' complicato mantenere le liste aggiornate: Postline infatti le aggiorna quando un messaggio viene cancellato, editato, o spostato in un altro thread o forum.-
Re: Ehi! C'e` la lista dei "tuoi thread"...Scritto da: altg
> Non so come abbiate fatto qui, ma se puo` servire, su Postline io ho una lista FIFO di tutti i messaggi postati da chiunque, abbastanza lunga da durare - di solito - almeno qualche giorno, prima che il messaggio piu` vecchio venga cancellato dalla lista; filtro quella lista per nome utente per generarne una che ha i post dell'utente in questione.
Perche' non usare un database
?select * from messages where author = 'altg' order by id desc
> Per fare qualcosa anche per i post piu` vecchi, mantengo un log dei thread iniziati da un utente, e lo salvo nel record dell'utente.
Ogni entry della tabella messages contiene l'id (Valore unico incrementale), un parentid (Il messaggio al quale risponde) e un threadid (Thread al quale appartiene). Per avere una lista distinta dei thread ai quali hai partecipato, credo che qualcosa del genere dovrebbe bastare:select distinct threadid from messages where author = 'altg' order by id desc )
> Per renderle veloci, Postline registra tutti gli ID che riguardano un messaggio, cioe` non solo l'ID del messaggio ma anche quello del thread e del forum di appartenenza, insieme a un estratto dell'inizio del testo, cosi` puo` leggere tutto da li`; pero` diventa un po' complicato mantenere le liste aggiornate: Postline infatti le aggiorna quando un messaggio viene cancellato, editato, o spostato in un altro thread o forum.http://it.wikipedia.org/wiki/Database

Anzi, no, e' gia' troppo avanzato, prima di reinventare tutto da zero comincia da qui:http://it.wikipedia.org/wiki/Ruota

`"la realta' non e' cosi' terrificante come vogliono farti credere" - Giambo ` - Wakko che cita Giambo-
Re: Ehi! C'e` la lista dei "tuoi thread"...Scritto daaltgutente che non utieneil 2012-02-03 08:42:49.0 alle 2012-02-03 08:42:49.0Trollate totali: 11540> Perche' non usare un database
?
Perche` le query possono venire lente?
> Anzi, no, e' gia' troppo avanzato, prima di reinventare tutto da zero comincia da qui:
>http://it.wikipedia.org/wiki/Ruota

Be', volendo per il FdT2 avresti anche gia` ` disposizione phpBB. O)-
Re: Ehi! C'e` la lista dei "tuoi thread"...Scritto da: altg
> > Perche' non usare un database
?
>
> Perche` le query possono venire lente?
Compera una macchina piu' veloce, di sicuro costa di meno che fatturare le n-mila ore che hai usato per implementare una soluzione custom, non flessibile e potenzialmente buggosa
> > Anzi, no, e' gia' troppo avanzato, prima di reinventare tutto da zero comincia da qui:
> >http://it.wikipedia.org/wiki/Ruota

>
> Be', volendo per il FdT2 avresti anche gia` ` disposizione phpBB. O)
Infatti era l'idea originale. Ma poi ho pensato: Ecchecazzo, quel che voglio e' un viewer semplicissimo da usare sul mio smartphone.
Causa forza maggiore (Lucannunziata
!!) e' diventato quel che e' ora
...
`"la realta' non e' cosi' terrificante come vogliono farti credere" - Giambo ` - Wakko che cita Giambo-
Re: Ehi! C'e` la lista dei "tuoi thread"...Scritto daavvelenatoun mezzo cavalloil 2012-02-03 09:37:52.0 alle 2012-02-03 09:37:52.0Trollate totali: 14239Scritto da: Giambo
> Scritto da: altg
> > > Perche' non usare un database
?
> >
> > Perche` le query possono venire lente?
>
> Compera una macchina piu' veloce, di sicuro costa di meno che fatturare le n-mila ore che hai usato per implementare una soluzione custom, non flessibile e potenzialmente buggosa
>
> > > Anzi, no, e' gia' troppo avanzato, prima di reinventare tutto da zero comincia da qui:
> > >http://it.wikipedia.org/wiki/Ruota

> >
> > Be', volendo per il FdT2 avresti anche gia` ` disposizione phpBB. O)
>
> Infatti era l'idea originale. Ma poi ho pensato: Ecchecazzo, quel che voglio e' un viewer semplicissimo da usare sul mio smartphone.
> Causa forza maggiore (Lucannunziata
!!) e' diventato quel che e' ora
...
giambo a me il foro piace.
dai fatti forza.I pedoni possono muoversi solo in avanti.-
Re: Ehi! C'e` la lista dei "tuoi thread"...Scritto da: avvelenato
> giambo a me il foro piace.
'azie, sei il solo qui dentro che mi capisce e mi apprezza
> dai fatti forza.
`"la realta' non e' cosi' terrificante come vogliono farti credere" - Giambo ` - Wakko che cita Giambo
-
-
-
-
Re: Ehi! C'e` la lista dei "tuoi thread"...Scritto daavvelentaniCubicolarioil 2012-02-03 08:45:19.0 alle 2012-02-03 08:45:19.0Trollate totali: 18184Scritto da: Giambo
> Scritto da: altg
>
> > Non so come abbiate fatto qui, ma se puo` servire, su Postline io ho una lista FIFO di tutti i messaggi postati da chiunque, abbastanza lunga da durare - di solito - almeno qualche giorno, prima che il messaggio piu` vecchio venga cancellato dalla lista; filtro quella lista per nome utente per generarne una che ha i post dell'utente in questione.
>
> Perche' non usare un database
?
>> select * from messages where author = 'altg' order by id desc >
A dire il vero la query e` parecchio piu` complicata (quello che fa quel link li` e` darti i thread a cui ha partecipato un utente, ordinati per data dell'ultimo messaggio aggiunto al thread).
I think happiness is love
- Vladimir Putin-
Re: Ehi! C'e` la lista dei "tuoi thread"...Scritto da: avvelentani
> A dire il vero la query e` parecchio piu` complicata
Si, ho visto, ma io in SQL sono piuttosto una pippa
> (quello che fa quel link li` e` darti i thread a cui ha partecipato un utente, ordinati per data dell'ultimo messaggio aggiunto al thread).
Pensavo/Speravo fossero ordinati per l'ultimo messaggio dell'utente
...
`"la realta' non e' cosi' terrificante come vogliono farti credere" - Giambo ` - Wakko che cita Giambo-
Re: Ehi! C'e` la lista dei "tuoi thread"...Scritto daavvelentaniCubicolarioil 2012-02-03 09:18:13.0 alle 2012-02-03 09:18:13.0Trollate totali: 18184Scritto da: Giambo
> Scritto da: avvelentani
>
> > A dire il vero la query e` parecchio piu` complicata
>
> Si, ho visto, ma io in SQL sono piuttosto una pippa
>
> > (quello che fa quel link li` e` darti i thread a cui ha partecipato un utente, ordinati per data dell'ultimo messaggio aggiunto al thread).
>
> Pensavo/Speravo fossero ordinati per l'ultimo messaggio dell'utente
...
No, l'idea era che vai li` per vedere se ci sono nuovi messaggi in thread a cui sei interessato.I think happiness is love
- Vladimir Putin-
Re: Ehi! C'e` la lista dei "tuoi thread"...Scritto da: avvelentani
> Scritto da: Giambo
> > Scritto da: avvelentani
> >
> > > A dire il vero la query e` parecchio piu` complicata
> >
> > Si, ho visto, ma io in SQL sono piuttosto una pippa
> >
> > > (quello che fa quel link li` e` darti i thread a cui ha partecipato un utente, ordinati per data dell'ultimo messaggio aggiunto al thread).
> >
> > Pensavo/Speravo fossero ordinati per l'ultimo messaggio dell'utente
...
>
> No, l'idea era che vai li` per vedere se ci sono nuovi messaggi in thread a cui sei interessato.
Puoi fare una query parziale tipo gli ultimi 10? Oppure usare la medesima che viene usata cliccando sul nickname.. Certamente la soluzione attuale a me piace molto, ma capisco che chi ha decine di migliaia di discussioni aperte, può far piegare un po' le gambe..-
Re: Ehi! C'e` la lista dei "tuoi thread"...Scritto daavvelentaniCubicolarioil 2012-02-03 09:54:42.0 alle 2012-02-03 09:54:42.0Trollate totali: 18184Scritto da: manila
> Scritto da: avvelentani
> > Scritto da: Giambo
> > > Scritto da: avvelentani
> > >
> > > > A dire il vero la query e` parecchio piu` complicata
> > >
> > > Si, ho visto, ma io in SQL sono piuttosto una pippa
> > >
> > > > (quello che fa quel link li` e` darti i thread a cui ha partecipato un utente, ordinati per data dell'ultimo messaggio aggiunto al thread).
> > >
> > > Pensavo/Speravo fossero ordinati per l'ultimo messaggio dell'utente
...
> >
> > No, l'idea era che vai li` per vedere se ci sono nuovi messaggi in thread a cui sei interessato.
>
> Puoi fare una query parziale tipo gli ultimi 10? Oppure usare la medesima che viene usata cliccando sul nickname.. Certamente la soluzione attuale a me piace molto, ma capisco che chi ha decine di migliaia di discussioni aperte, può far piegare un po' le gambe..
E` limitata a 512 messaggi. Dopo la copincollo qui, magari si riesce ad ottimizzare.I think happiness is love
- Vladimir Putin-
Re: Ehi! C'e` la lista dei "tuoi thread"...
> E` limitata a 512 messaggi. Dopo la copincollo qui, magari si riesce ad ottimizzare.
Volenteiri!-
Re: Ehi! C'e` la lista dei "tuoi thread"...Volevo provarci pure io, per dimostrare a avvelentani di non essere totalmente incapace, quindi te la copioincollo io:
SELECT last_global.threadid FROM (SELECT threadid, max(id) AS mid FROM messages GROUP BY threadid ORDER BY mid DESC LIMIT 512) AS last_global, (SELECT threadid FROM messages WHERE author = 'Giambo' GROUP BY threadid ORDER BY max(id) DESC LIMIT 512) AS last_author WHERE last_author.threadid = last_global.threadid ORDER BY last_global.mid
`"la realta' non e' cosi' terrificante come vogliono farti credere" - Giambo ` - Wakko che cita Giambo-
Re: Ehi! C'e` la lista deiC'è mysql dietro?
edit: ma indici ne son stati fatti?
**Modificato dall'autore il 03.02.2012 12:40**-
Re: Ehi! C'e` la lista deiScritto da: manila
> C'è mysql dietro?
Si. C'e' anche una versione con postgre, che uso di gran segreto.
> edit: ma indici ne son stati fatti?
Tutti quelli necessari, e forse qualcuno di troppo
Keyname Type Unique Packed Field
id BTREE Yes No id
parentId BTREE No No parentId
threadId BTREE No No threadId
`"la realta' non e' cosi' terrificante come vogliono farti credere" - Giambo ` - Wakko che cita Giambo
-
-
Re: Ehi! C'e` la lista dei "tuoi thread"...Scritto daavvelentaniCubicolarioil 2012-02-03 15:11:35.0 alle 2012-02-03 15:11:35.0Trollate totali: 18184Scritto da: Giambo
> Volevo provarci pure io, per dimostrare a avvelentani di non essere totalmente incapace, quindi te la copioincollo io:
>
>> SELECT last_global.threadid > FROM > (SELECT threadid, max(id) AS mid FROM messages > GROUP BY threadid ORDER BY mid DESC LIMIT 512) > AS last_global, > (SELECT threadid FROM messages > WHERE author = 'Giambo' > GROUP BY threadid ORDER BY max(id) DESC LIMIT 512) > AS last_author > WHERE last_author.threadid = last_global.threadid > ORDER BY last_global.mid >
>
Inoltre, lo schema della tabella messaggi e`:+----------+----------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------+----------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | text | longtext | NO | MUL | NULL | | | date | datetime | NO | | NULL | | | subject | tinytext | NO | | NULL | | | threadId | int(11) | NO | MUL | NULL | | | parentId | int(11) | NO | MUL | NULL | | | author | tinytext | YES | | NULL | | | forum | tinytext | YES | | NULL | | +----------+----------+------+-----+---------+----------------+
explain:+----+-------------+------------+------+---------------+------+---------+------+--------+---------------------------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+------------+------+---------------+------+---------+------+--------+---------------------------------+ | 1 | PRIMARY | <derived2> | ALL | NULL | NULL | NULL | NULL | 512 | Using temporary; Using filesort | | 1 | PRIMARY | <derived3> | ALL | NULL | NULL | NULL | NULL | 512 | Using where; Using join buffer | | 3 | DERIVED | messages | ALL | NULL | NULL | NULL | NULL | 928694 | Using temporary; Using filesort | | 2 | DERIVED | messages | ALL | NULL | NULL | NULL | NULL | 928694 | Using temporary; Using filesort | +----+-------------+------------+------+---------------+------+---------+------+--------+---------------------------------+
I think happiness is love
- Vladimir Putin
-
-
-
-
-
-
Re: Ehi! C'e` la lista dei "tuoi thread"...Scritto da: Giambo
> Scritto da: avvelentani
>
> > A dire il vero la query e` parecchio piu` complicata
>
> Si, ho visto, ma io in SQL sono piuttosto una pippa
LOL
Chi ti da una mano?
-
Re: Ehi! C'e` la lista dei "tuoi thread"...Scritto da: manila
> > > A dire il vero la query e` parecchio piu` complicata
> >
> > Si, ho visto, ma io in SQL sono piuttosto una pippa
>
> LOL
Chi ti da una mano?
Per ora le queries sono state piuttosto triviali (Praticamente nessun join), ma se le funzionalita' del forum crescono, allora dovro' pagare un consulente dal 100Euro/ora per ottimizzare il tutto
`"la realta' non e' cosi' terrificante come vogliono farti credere" - Giambo ` - Wakko che cita Giambo
-
-
-
-
-
-
-