Molti siti ORM e tutorial SQL menzionano queste relazioni come se fossero ovvie o da dare per scontate, ma non capisco appieno perché le distinzioni debbano essere fatte.
Considera due tabelle A e B, entrambe con campi ID e linkaggi tra queste due tabelle.
La mia comprensione è questa:
-
Relazione one-to-one: se hai una riga in A, hai al massimo una riga corrispondente in B e viceversa. Penso che in questo tipo di scenario potresti probabilmente combinare le tabelle, probabilmente, ma questo va oltre lo scopo.
-
Relazione uno-a-molti: se hai una riga in A, puoi avere un numero qualsiasi di righe corrispondenti in B. Ma se hai una riga in B, al massimo c'è solo una riga corrispondente in A.
-
Relazione molti-a-uno: già descritta in 2.
-
Relazione molti-a-molti: se hai una riga in A, ci può essere un numero qualsiasi di righe corrispondenti in B. Se hai una riga in B, ci può essere un numero qualsiasi di righe corrispondenti in A .
Quindi, se questo è il caso, allora perché, in un ORM, dobbiamo fare la distinzione tra questi casi? Perché non è sufficiente dire: "Ecco l'oggetto A. Contiene un riferimento o una lista di riferimenti all'oggetto B." Perché devo menzionare esplicitamente "Questo riferimento all'oggetto B? Questa è una relazione uno-a-uno". O "questa è una relazione molti-a-molti", ecc.