Ora ho 2 oggetti che sono "PROBLEMA" e "SOLUZIONE", ovviamente "SOLUZIONE" è una soluzione proposta per un dato "PROBLEMA", il mio problema è che nella mia azienda ho le seguenti relazioni:
1- un "PROBLEMA" può riferirsi a una o più "SOLUZIONE" (cioè un "PROBLEMA" che è accaduto a causa di una "SOLUZIONE"),
2- "PROBLEMA" può riferirsi a uno o più "PROBLEM" (cioè a "PROBLEMA relativo a un altro" PROBLEMA "),
3- "SOLUZIONE" può riferirsi a uno o più "PROBLEM" (cioè, una "SOLUZIONE" proposta a un "PROBLEMA")
4- "SOLUZIONE" può riferirsi a una o più "SOLUZIONE" (cioè una "SOLUZIONE" costruita sopra un'altra "SOLUZIONE")
Mi chiedo come posso modellare questo business in un RDBMS, una soluzione che sto pensando è mettere sia "SOLUZIONE" che "PROBLEMA" nella stessa tabella, ma in realtà sono oggetti completamente diversi
So che la parola "uno o più" nei casi precedenti significa molti a molti, ma come posso dire che la relazione punta o su "PROBLEMA" o "SOLUZIONE", anche come posso ordinare in modo performante (2 "SOLUZIONI" sono correlate allo stesso "PROBLEMA", ma uno è venuto prima dell'altro)
Nota importante: le prestazioni sono una preoccupazione, non voglio molti join o una logica sofisticata che mette in ginocchio l'applicazione