Hii,
I am new to database thing so I am trying to wrap my head around it.
-
many2one: so in this relationship you will have more than one record in one table which matches to only one record in another table. something like A <-- B. where (<–) is foreign key relationship. so B will have a column which will be mapped to more than one record of A.
-
one2many: same as many2one but instead now the foreign key constrain will look something like A --> B.
-
many2many: this one is interesting because this relationship doesn’t make use of foreign key directly. to have this relationship between A and B you have to make a third database something like AB_rel. AB_rel will hold values of primary key of A and also primary key of B. so that way we can map those two using AB_rel table.
tell me if I got something wrong :) give me some suggestion <3
no, the other way around
When B has a foreign key to A, many B records may relate to one A record. That’s the many2one part.
The fact that different B records can point to different A records is irrelevant to that.
It’s the same, mirrored. Or mirrored interpretation / representation to be more specific. (No logical change.)
If you had B --> A for many2one, then the foreign key relationship is still B --> A. But if you want to represent it from A perspective, you can say one2many - even though A does not hold the foreign keys.
In relational database schemata, using foreign keys on a column means the definition order is always one to one, and only through querying for the shared id will you identify the many.
Notably, we still make use of foreign keys. But because one record does not necessarily have only one FK value we don’t store it in a column but have to save it in a separate table.
This association table AB_rel will then hold the foreign keys to both sides.