Relationships between models
Non-trivial business applications need to use relationships between the different entities involved. To do this, we need to use relational fields.
Looking at the Library
app, the Book
model has the following relationships:
- Each book can have one publisher, and each publisher can have many books. From the book's point of view, this is a many-to-one relationship. It is implemented in the database as an integer field, holding the ID of the related publisher record, and a database foreign key in it, enforcing referential integrity.
- The reverse of this, from the publisher's point of view, is a one-to-many relation, meaning that each publisher can have many books. While this is also a field type in Odoo, its database representation relies on the many-to-one relationship. We know the books related to a publisher running a query on books, filtered by the publisher ID.
- Each book can have many authors, and each author can have many books...