Sqlalchemy أجد صعوبة في فهم كيفية ربط جدولين

يبدو ان ال ForeignKey تختلف في الطريقة عن peewee
وكذلك relationship ما عوظيفتها؟

أرجوا التوضيح والمساعدة

1 Like

مرحبا صهيب،

في قواعد البيانات لدينا انواع متعددة من العلاقات، دعنا نمر عليها سريعا:

  1. علاقة one to many: هنا العنصر الواحد لديه علاقة مع اكثر من عنصر.
    مثال: لنقل ان لدينا كلاس Person وكلاس Car… العلاقة كالتالي: كل Person لديه اكثر من Car (اي ان كل السيارة لديها حقل للشخص المرتبطة به، لكن السيارة لا تتشارك علاقة مع اكثر من شخص)
Person
    id

Car
    id
    person_id
  1. علاقة one to one: من اسمها، علاقة عنصر مع عنصر.
    مثال: كل Person لديه Profile واحد فقط (اي ان كلاهما لديهما حقول للاشارة على بعض).
Person
    id
    profile_id

Profile
    id
    person_id
  1. علاقة many to many: وهي تعني ان العنصر ممكن يتشارك في العلاقة مع عناصر اخرى.
    مثال: كل Person لديهم علاقات مع نفس ال Country (ويتشاركوها، بعكس ال Car)
    نستعمل هنا جدول وسيط لربطهم ببعض CountryPerson
Person
    id

Country
    id

CountryPerson
    person_id
    country_id

الان انت تعرف انواع العلاقات، حدد ماهي العلاقة التي لديك، واطلع على هذا المرجع لتطبيق العلاقة التي تريدها في SQLAlchemy:

https://docs.sqlalchemy.org/en/13/orm/basic_relationships.html

1 Like

:rose::rose::rose:

1 Like