Junior — Middle
Можете ли да обясните какво означава концепцията за агрегиране в системите ORM?
sobes.tech AI
Отговор от 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.