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>.

Attachment: signature.asc
Description: PGP signature

_______________________________________________
nexa mailing list
nexa@server-nexa.polito.it
https://server-nexa.polito.it/cgi-bin/mailman/listinfo/nexa

Reply via email to