Query che verifichi i prerequisiti

di Anonimizzato19823 il
2 risposte
Buongiorno a tutti, da un paio di giorni mi arrovella un quesito:

Ho una tabella(TALENTI) con 3 campi (id, nome, descrizione, richiede)
una tabella (PEROSONE) con 2 campi (id, nome)
e una tabella (PERSONE_TALENTI) con 3 campi (id, id_talento, id_persona)

Quando mostro il contenuto della tabella alcune cose vorrei mostrarle con questa logica:

Talento1 richiede ((talento2 e talento3) o talento4) per essere visualizzato
Talento 2 richiede NULLA
Talento 3 richiede NULLA
Talento 4 richiede NULLA

Ovvero, se una persona ha già acquisito talento2 e talento3 (oppure solo talento4) allora potrà vedere anche talento1 altrimenti no.

Considerando che i talenti saranno qualche centinaio, secondo voi come potrei gestire il campo "richiede"?

Grazie

2 Risposte

  • Un po' di note:

    1) la tabella PERSONE_TALENTI ha la colonna 'id' che non serve a nulla (diciamo pure che e' sbagliata!!!)!

    2) quello che richiedi e' una 'query ricorsiva' che il MODELLO RELAZIONALE DEI DATI NON SUPPORTA.

    Pero' ci sono trucchi per aggirare il problema:

    http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/

    oppure usare delle 'STORED PROCEDURES'
  • La "o" rende più difficile una soluzione banale
Devi accedere o registrarti per scrivere nel forum
2 risposte