Junior — Middle
94
შეგიძლიათ ახსნათ კომპოზიციის კონცეფცია ობიექტ-კავშირების გამოსახულებებში (ORM)?
პასუხი AI-სგან
sobes.tech AI
ORM (ობიექტ-რელაციური რუკა) შიგნით, კომპოზიცია არის გზა, რომელიც მოდელირებს ურთიერთობებს ობიექტებს შორის, სადაც ერთი ობიექტი შეიცავს მეორეს მისი სტრუქტურის ნაწილად.
მაგალითად, თუ გაქვთ მოდელები User და Profile, და პროფილი არის მომხმარებლის ნაწილი, მაშინ User შეიძლება შეიცავდეს Profile ობიექტს. ეს ჩვეულებრივ გამოხატულია მონაცემთა ბაზაში საგარეო გასაღებებით.
Python ORM-ებში (მაგალითად, SQLAlchemy ან Django ORM) კომპოზიცია საშუალებას აძლევს:
- ერთ ობიექტს ჩააგდოს სხვა როგორც ატრიბუტი.
- მართოს ჩაშენებული ობიექტის ციკლი ერთად მშობელთან.
- გაადვილოს დაკავშირებული მონაცემებით მუშაობა, მისით წვდომით ობიექტის თვისებებზე.
SQLAlchemy-ის მაგალითი:
from sqlalchemy import Column, Integer, String, ForeignKey
from sqlalchemy.orm import relationship
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class Profile(Base):
__tablename__ = 'profiles'
id = Column(Integer, primary_key=True)
bio = Column(String)
user_id = Column(Integer, ForeignKey('users.id'))
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String)
profile = relationship('Profile', uselist=False, backref='user')
აქ, User შეიცავს Profile-ს relationship-ის საშუალებით, რაც არის კომპოზიციის მაგალითი.