Ciao, chiedo scusa se entro nel merito tecnico della questione del database per rappresentare relazioni molti a molti
Giacomo Tesio <giac...@tesio.it> writes: [...] > Prediamo il tuo aneddoto come caso di studio: > >> ================= >> >> Domanda: "I have a database containing two tables "elementi" and >> "proprietari" in elementi i have rows that refers to multiple >> proprietari and vice versa, what can be the best way to use reference >> keys in this scenarios?" >> >> Risposta: "In a scenario where you have a many-to-many relationship >> between the "elementi" and "proprietari" tables, the best way to use >> reference keys is to create a third table that acts as a bridge >> between the two tables. This is commonly referred to as a junction >> table or an associative table. [...] > Se metti come chiave primaria nella junction table un id > (assumo, numerico autoincrementale) e non poni alcun vincolo di > univocità sulle altre due chiavi, permetti l'inserimento di una stessa > relazione più volte, costringendo l'applicativo a gestire i duplicati. > > Visto che non si sta parlando di un DBMS in particolare e non possiamo > assumere ridicoli limiti implementativi, la risposta corretta sarebbe > stata di impostare come chiave primaria la coppia proprietario_id, > elemento_id. [...] > Al tuo amico, la risposta può sembrare perfetta, ma non lo è. In un confronto tra colleghi, una riposta sensata non sarebbe: meglio lasciar perdere RDBMS con le tabelle e passare a un triplestore, usando SPARQL per interrogalo in merito alle relazioni? :-O Ora non so che testi hanno usato per il training di ChatGPT ma immagino, da una rapida ricerca sul web come questa: https://duckduckgo.com/?q=%22many+to+many%22+relationships che moltissimi testi relativi ai database quando si parla di modelli dati "many to many" spieghino solamente come si risolve il problema usando un RDBMS, ma quello non è il modo più efficiente di organizzare tali relazioni in un database, per quanto ne ho capito. Con questa ricerca, invece: https://duckduckgo.com/?q=%22many+to+many%22+triplestore il primo risultato è: https://www.dataversity.net/triplestores-101-storing-data-efficient-inferencing/ «Triplestores 101: Storing Data for Efficient Inferencing» --8<---------------cut here---------------start------------->8--- [...] Triplestores offer several advantages compared to traditional database management systems: Flexibility: There’s no need to define a schema in advance, and no need for artificial entities such as tables to represent a many to many relationship. --8<---------------cut here---------------end--------------->8--- la spiegazione di "Flexibility" mi diverte tantissimissimo ...anche io non sono normale :-D [...] Saluti, 380° -- 380° (Giovanni Biscuolo public alter ego) «Noi, incompetenti come siamo, non abbiamo alcun titolo per suggerire alcunché» Disinformation flourishes because many people care deeply about injustice but very few check the facts. Ask me about <https://stallmansupport.org>.
signature.asc
Description: PGP signature
_______________________________________________ nexa mailing list nexa@server-nexa.polito.it https://server-nexa.polito.it/cgi-bin/mailman/listinfo/nexa