Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di Graboid
    Registrato dal
    Oct 2004
    Messaggi
    619

    Tre tabelle con relazione molti a molti, richiesta info

    Ciao,

    ho un database con una tabella "autori", una "opere" e una "mostre".

    un autore puo' avere molte opere e partecipare a molte mostre
    un opera puo' avere molti autori e essere prensente in molte mostre
    ad una mostra devo poter associare autori e opere (purtroppo non posso associare ad una mostra solo le opere e da queste ricavare gli autori)

    Si crea un "cerchio" con tutte relazioni molti a molti e cioe' con altre 3 minitabelle con 2 campi ciascuna che gestiscono le relazioni tramite gli id delle 3 tabelle principali:

    codice:
          ---------------------Opere
         |                      |
     Autori                     |
         |                      |
         --------------------Mostre
    Non so perche' ma mi sembra di aver letto che non vada bene. Qualcuno sa spiegarmi il motivo?

    Mi conviene fare oltre alle tre principali una sola tabella che mette in relazione:
    - id mostra
    - id opera
    - id autore

    Spero di essere stato chiaro.


    Ciao

  2. #2
    Perche' non va una relazione molti a molti pare che gia' l'hai capito da te. Ti sarebbe impossibile o parecchio cervellotico recuperare alcuni dati


    Mi conviene fare oltre alle tre principali una sola tabella che mette in relazione:
    - id mostra
    - id opera
    - id autore
    e certo che si.... devi pero' considerare che opera <-> autore/i necessiterebbe di una sua unione poiche' gli autori possono essere piu' di uno per la stessa opera, e poi una ulteriore unione tra mostre <-> opere dove vengono gestite le mostre con le loro date di validita'... recapitolando...

    elenco "mostre"
    elenco "opere"
    elenco "autori"
    associazione opere <-> autori
    associazione mostre <-> opere

    non dovresti mai trovare la relazione molti a molti ne' dati duplicati.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it L'avatar di Graboid
    Registrato dal
    Oct 2004
    Messaggi
    619
    Grazie mille della risposta, ho capito che chiudere il cerchio e' un ipotesi che va scartata, ma non hai tenuto conto di una cosa (in effetti l'ho spiegato male).
    Se non ho capito male facendo nel tuo modo ottengo l'elenco degli autori legati ad un mostra attraverso le opere presenti in quella mostra (soluzione ideale).

    Il problema e' che devo poter associare ad una mostra degli autori anche se non c'e' nessuna loro opera in quella mostra. Questo perche' il cliente vorrebbe creare la mostra, associargli degli autori e solo in seguito inserire l'opera/e degli autori associati (io ho spiegato che non e' tanto logico ma il cliente ha sempre ragione).

    Proprio per questo motivo chiedevose era meglio usare una sola tabella con 3 colonne per gli id anche se mi sembra che così facendo qualche duplicazione sia inevitabile.

  4. #4
    Quello che dici si chiama "processo di lavoro" percui stabilisci prima il processo attinente e poi crei il database.

    Non si crea un database per poi ricamarci su , si deve avere chiaro il "processo di lavoro" con le regole esplicite (del cliente) ed implicite (logica di lavoro), valutare i dati a disposizione, i dati che bisognera' ricavare (diagramma E/R) e poi si crea la struttura di database normalizzata.

    tabella piu' tabella meno poco cale. L'importante e' la normalizzazione del db.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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