Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    29

    Preferenze Utenti Problema!

    Ciao ragazzi, ho un problema che non riesco a risolvere! Ho un sito (un web-journal) che si occupa della gestione degli articoli online. Vorrei che ad ogni utente, fossero consigliati degli articoli durante la navigazione ed esempio consigliati per te come youtube, ho provato con i cookie ma dato che uso un database mysql la situazione si complica! Vi prego datemi qualche consiglio!!! Grazie mille! Io programmo in php.
    Gigi

  2. #2
    guarda, il sistema di consiglio degli articoli (siano documenti o filmati tipo YouTube) si basa sulla navigazione nelle pagine, diciamo che per ogni pagina, dovresti avere una lista di possibili pagine che all'utente potrebbero interessare.
    Di solito questa lista viene calcolata in automatico, per esempio, cercando nelle keywords o description delle altre pagine, termini comuni o anche cercare altre pagine con gli header (h1, h2, h3) conteneti gli stessi termini ( per dirla in modo semplice, se ho una pagina con un <h1>La miglior Attrice del 2008</h1>, cercherò le pagine che hanno nel h1 le parole "miglior", "attrice" e "2008", ordinandole per numero di occorrenze )


    Se poi vuoi salvare per ogni utente le sue pagine ideali devi considerare la sua cronologia (o più semplicemente ti salvi le pagine che visita) e calcolare le pagine associate a ciascuna pagina visitata, poi contare le occorrenze delle stesse per calcolare le più probabili (per dire l'utente ha visitato 2 pagina che suggeriscono la pagina pippo, pippo sarà in testa rispetto alle pagine che che venivano suggerite una volta sola)

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    29
    Ciao, grazie per la risposta, la tua spiegazione mi sembra abbastanza logica ma non ho capito bene cosa devo fare.... Per fare quello che dici devo utilizzare un database con una tabella utente in cui memorizzo le loro preferenze? E poi come faccio a catalogare le pagine come le più visitate da un determinato utente e proporle alla stesso? Grazie in anticipo per la risposta
    Ciao

  4. #4
    Originariamente inviato da luigi87
    Ciao, grazie per la risposta, la tua spiegazione mi sembra abbastanza logica ma non ho capito bene cosa devo fare....
    Mi sarei stupito del contrario: sono stato tutto fuorché chiaro,
    Per fare quello che dici devo utilizzare un database con una tabella utente in cui memorizzo le loro preferenze?
    E poi come faccio a catalogare le pagine come le più visitate da un determinato utente e proporle alla stesso?
    Non so se è il modo migliore, ma io lo farei con una tabella relazionata a quella utente in cui mi segno le pagine che un utente ha visitato ed il numero di volte che le ha viste. In questo modo mi basta fare una SELECT ... ORDER BY visit DESC per ottenere le pagine in ordine di visita (dalla più visitata alla meno)

    A questo punto devi pensare di relazionare le pagine tra loro, magari con una Tabella Consiglio:

    codice:
    CREATE TABLE Consiglio (
      id NOT NULL AUTO_INCREMENT,
      id_pagina INT NOT NULL,
      id_pagina_consigliata INT NOT NULL,
      PRIMARY KEY(id)
    )
    in id_pagina metti l'id della pagina ed in id_pagina consigliata metti l'id della pagina consigliata. Per esempio se la pagina pippo (id = 1), consiglia la visione della pagina gigi (id = 2) e della pagina gianni (id = 3), avrai 2 righe in Consiglio:

    codice:
    id | id_pagina | id_pagina_consigliata
    1        1               2
    2        1               3
    Di modo che se sono nella pagina pippo posso sapere le pagina consigliate, con

    SELECT * FROM Consiglio INNER JOIN Pagina ON Consiglio.id_pagina_consigliata = Pagina.id WHERE Consiglio.id_pagina = $id_pagina_corrente

    Poi, quando crei o modifichi la pagina devi calcolarti le relazioni con le altre pagine nel sistema, e popolare la tabella Consiglio.

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    29
    Grazie ancora per la risposta! Ma devo ancora charire delle cose:
    Quello che voglio fare è visualizzare degli articoli consigliati in base ad un criterio specificato dall'utente che può essere appunto come hai detto tu la navigazione oppure proprio la specifica di un articolo preferito spuntando l'opzione aggiungi ai preferiti (questo è un esempio), adesso non so quale sia la via più semplice da scegliere. Poi in una pagina io ho messo gli articoli in prima pagina, articoli recenti, e tematiche qundi non so se si può assegnare l'Id alla pagina se la pagina contiene più articoli non so se hai capito... ma bisognerebbe assegnarlo proprio all'articolo. Anche perchè, secondo questo criterio vorrei fare anche una classifica degli articoli più visti, più commentiati e più votati e vorrei risolvere il tutto attraverso un'unica tabella ma non so se sia possibile, però credo che il principio di ordinamento sia sempre quello.... Illuminami grazie....

  6. #6
    Originariamente inviato da luigi87
    Quello che voglio fare è visualizzare degli articoli consigliati in base ad un criterio specificato dall'utente che può essere appunto come hai detto tu la navigazione oppure proprio la specifica di un articolo preferito spuntando l'opzione aggiungi ai preferiti (questo è un esempio), adesso non so quale sia la via più semplice da scegliere.
    Puoi farlo in entrambi i modi, ma necessitano di metodi di implementazione diversi
    Poi in una pagina io ho messo gli articoli in prima pagina, articoli recenti, e tematiche qundi non so se si può assegnare l'Id alla pagina se la pagina contiene più articoli non so se hai capito... ma bisognerebbe assegnarlo proprio all'articolo.
    Si ho detto pagina, ma nel tua caso agli articoli
    Anche perchè, secondo questo criterio vorrei fare anche una classifica degli articoli più visti, più commentiati e più votati e vorrei risolvere il tutto attraverso un'unica tabella ma non so se sia possibile, però credo che il principio di ordinamento sia sempre quello.... Illuminami grazie....
    Con una sola tabella viene un casino infernale...
    IMHO, devi fare almeno, oltre alle tabelle Articolo ed Utente, che hai già fatto: una tabella Commenti (per i commenti), legata ad entrambe le altre (cioé con i campi in Commenti, id_utente ed id_articolo), una tabella Visite (legata ad Articolo ed ad Utenti) dove salvi il numero di volte che un determinato utente ha visitato il determinato articolo (poi puoi aggiungiere un campo contatore alla tabella articolo per contare il num di visite degli utenti non autenticati), poi ci vorrà la tabella Consiglio, come ti ho indicato prima (legata ad Articolo, non a Pagina), ed infine, aggiungerei un campo a Visite chiamato preferita in cui indichi se l'utente relazionato ha indicato la pagina relazionata come preferita.
    A me sembra una struttura abbastanza buona...

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    29
    Grazie mille sei stato molto chiaro! Adesso provo e ti faccio sapere grazie ancora!

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    29
    Ciao! Scusami se ti chiedo un' altra cosa ma ho un dubbio. Tu mi hai detto che posso aggiungere un contatore di visite agli utenti non registrati che visitano il mio web- journal ma io voglio gestire questa personalizzazione solo con utenti registati( dato che si sarà un login che permette agli utenti di commentare, votare) e solo a quelli devo consigliare gli articoli preferti magari in base alla tematica x esmpio ne seleziono tre, invece a quelle non registrati non voglio dare questi privilegi non so se mi hai capito... grazie in anticipo!

  9. #9
    beh, questo allora lo gestisci completamente dalla tabella Visite:

    tipo

    codice:
    CREATE TABLE Visite{
      id LONGINT NOT NULL AUTO_INCREMENT,
      id_articolo INT NOT NULL,
      id_utente INT NOT NULL,
      visite INT NOT NULL,
      PK(id),
      FK(id_articolo) ON Articoli.id DELETE CASCADE,
      FK(id_utente) ON Utenti.id DELETE CASCADE
    }
    (il SQL non è proprio così, ma l'idea è questa)

    Ogni volta che un utente registrato visita un articolo, devi andare a prendere la riga in cui id_articolo = {id articolo in visione} e id_utente = {id utente loggato}. Se esiste, aggiungi uno al contatore "visite", altrimenti la crei con visite = 1

  10. #10
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    29
    Grazie per la pronta risposta, io vorrei fare così, non so quale sia la strada più semplice.... Per conoscere le preferenze degli utenti vorrei già farlo in fase di registrazione... Ad esempio...quale di queste tematiche ti piace, in base alla scelta gli propongo gli articoli di quella tematica... ma facendo così li proporrei sempre e solo quegli articoli e poi non è detto che a uno piaccia solo l'informatica, quindi sec te il modo ottimale per capire le preferenze degli utenti è quello del conteggio delle visite? se io volessi aggiungere un opzione aggiungi ai preferiti e poi far in modo ke l'utente possa anche toglierla sarebbe difficile? (x farti capire molto simile a youtube....)

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 © 2024 vBulletin Solutions, Inc. All rights reserved.