• User Attivo

    Rappresentare dati diversi per record

    Salve, spero di riuscire a spiegarmi.

    Dovrei rappresentare un insieme di dati che possono essere diversi in base ad un oggetto.

    Vi posto un esempio, ammettiamo di dover rappresentare una biblioteca/videoteca.

    I video ed i libri hanno dati comuni (titolo, autore) e dati distinti tipo: numero pagine (per i libri), e genere (per i film dando per assurdo che i libri non abbiano genere.)

    Che consigli mi date per rappresentare una cosa del genere?
    Dovrei trovare sopratutto il modo migliore per effettuare select.


  • Bannato User Attivo

    Quella più semplice: due tabelle separate.
    Se avevi pensato a questa soluzione e non ti ha convinto forse dovresti esporci il perchè non ti ha convinto così magari si può fare un ragionamento insieme sui pro e i contro.


  • User Attivo

    Beh come risolto il problema degli ID?
    2 tabelle diverse corrispondono a 2 record con ID uguali
    Esempio
    ID = 3 può corrispondere un libro o nell'altra tabella un film.

    Ammettiamo di avere per ogni prodotto la sua pagina relativa esempio:
    pagina-prodotto.php?id=3

    Quando visualizzo tutti i dati con UNION come differenzio i due id? (spero di averlo esposto chiaramente)


  • Bannato User Attivo

    @visitaci said:

    Beh come risolto il problema degli ID?
    2 tabelle diverse corrispondono a 2 record con ID uguali
    Esempio
    ID = 3 può corrispondere un libro o nell'altra tabella un film.

    Ammettiamo di avere per ogni prodotto la sua pagina relativa esempio:
    pagina-prodotto.php?id=3

    puoi seguire due strade passare un ulteriore parametro
    pagina-prodotto.php?id=3&cat=film
    oppure avere due pagine separate (ti aiuterebbe anche con i mdr)
    film.php?id=3
    libri.php?id=3
    @visitaci said:

    Quando visualizzo tutti i dati con UNION come differenzio i due id? (spero di averlo esposto chiaramente)
    nella union aggiungi un campo 'film' o libri

     select t1.*, 'film' 
    from film t1
    union
    select t2.*, 'libri'
    from libri t2
    

    fermo restando che devi avere lo stesso numero e tipo di campi, altrimenti nelle select elenchi solo quelli comuni.

    spero anch'io di essermi spiegato.


  • User Attivo

    Dal mio punto di vista.....

    usi una sola tabella, con i campi uguali, restano tali, mentre quelli variabili, lu usi stile jolly.

    esempio:
    titolo, autore, pagine_durata

    così hai tutta la libertà di giocherellare con le select!