On 04/11/2016 09:58 AM, Ryan Govostes wrote:
Hi, I'm a beginner reading the "Basic Relationship Patterns" documentation: http://docs.sqlalchemy.org/en/latest/orm/basic_relationships.html The examples are confusing to me because all of the examples use "Parent" and "Child," which in reality have a Many-to-Many relationship. It was unclear to me whether the "One To Many" example illustrates "one parent to many children" or "one child to many parents." Understanding from the code samples (which are all very similar) presupposes a certain level of familiarity with how relationships are constructed in SQLAlchemy.
I agree Parent / Child is confusing due to the way one-to-many and many-to-one are mirror images.
However, the way to think about it, at least how the docs were written, is that the "Parent" is the object you have "in hand", like "obj = session.query(MyClass).first()", and "Child" is the object(s) that are hanging off of it, e.g. "obj.stuff".
That is, Parent/Child are terms given from the object perspective, not really the relational perspective. That's also how it works out in many-to-many.
The documentation would be improved by switching to more intuitive examples. How about One To Many, Many To One: Countries and Cities One To One: Capitals and Countries Many To Many: Organizations and Members
Agree that changing Parent/Child is a good idea though maybe not something as specific as countries / capitals etc. I wonder if we can come up with a term that is generic but more descriptive (something like "Holder" / "Holdee", but not as weird).
It would help to explicitly state the scenario that is being modeled in each case, even if it appears obvious. The descriptions of the current examples all immediately jump into technical details of foreign keys, scalars, and association tables.
Ryan -- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To unsubscribe from this group and stop receiving emails from it, send an email to sqlalchemy+unsubscr...@googlegroups.com <mailto:sqlalchemy+unsubscr...@googlegroups.com>. To post to this group, send email to sqlalchemy@googlegroups.com <mailto:sqlalchemy@googlegroups.com>. Visit this group at https://groups.google.com/group/sqlalchemy. For more options, visit https://groups.google.com/d/optout.
-- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To unsubscribe from this group and stop receiving emails from it, send an email to sqlalchemy+unsubscr...@googlegroups.com. To post to this group, send email to sqlalchemy@googlegroups.com. Visit this group at https://groups.google.com/group/sqlalchemy. For more options, visit https://groups.google.com/d/optout.