Sobes.tech
Junior — Middle
70

Можете объяснить, что означает концепция агрегации в системах ORM?

Answer from AI

sobes.tech AI

Агрегация в системах ORM — это тип отношений между объектами, при котором один объект содержит ссылку на другой, но при этом объекты существуют независимо друг от друга. В отличие от композиции, где жизненный цикл вложенного объекта зависит от контейнера, при агрегации вложенный объект может существовать отдельно.

Например, у модели Order может быть ссылка на модель Customer. Если заказ удаляется, клиент всё равно остаётся в базе данных.

class Customer(Base):
    __tablename__ = 'customers'
    id = Column(Integer, primary_key=True)
    name = Column(String)

class Order(Base):
    __tablename__ = 'orders'
    id = Column(Integer, primary_key=True)
    customer_id = Column(Integer, ForeignKey('customers.id'))
    customer = relationship('Customer')

Здесь Order агрегирует Customer.