Buongiorno, vorrei un parere da chi, magari è più esperto di me, non sono sicuro di quello che sto per fare.
Ho questa tabella:
----------------------------------------
| ITEMS |
----------------------------------------
| id | nome | descrizione | richiede|
----------------------------------------
il campo 'richiede' fa riferimento alla tabella stessa ed avrei bisogno di operatori logici AND e OR per capire quali altri record sono necessari per visualizzare il recor corrente. Per esempio:
----------------------------------------------
| 100 | pippo | strano cane | (1||2)&&3 |
----------------------------------------------
'Pippo' richiede che l'utente abbia già acquistato gli item con id ( 1 o 2 ) e l'item con id 3.
Per sapere cosa ha acquistato un utente c'è la tabella users_items_map
----------------------------------------
| USERS_ITEMS_MAP |
----------------------------------------
| id | user_id | item_id | dataacq |
----------------------------------------
La domanda: per generare una lista di item 'acquistabili' ho pensato ad una cosa così:
- carico un array con tutti gli items già acquistati dall'utente
- per ogni riga della tabella items sostituisco le id richieste con TRUE se sono presenti nell'array dei "già acquistati" e con la funzione EVAL() verifico il risultato dell'operazione logica. Se esce TRUE è acquistabile, se esce false non lo è.
Dato che ho scoperto che "se la risposta è EVAL() la domanda è sbagliata", avete voi idee su metodi migliori di questo?
Grazie