Junior — Middle
95
Můžete vysvětlit koncept složení v objektově-relačních zobrazeních (ORM)?
Odpověď od AI
sobes.tech AI
V ORM (objektově-relační mapování) je kompozice způsob, jak modelovat vztahy mezi objekty, kdy jeden objekt obsahuje jiný jako součást své struktury.
Například, pokud máte modely User a Profile, a profil je součástí uživatele, pak User může obsahovat objekt Profile. V databázi se to obvykle odráží pomocí cizích klíčů.
V Python ORM (například SQLAlchemy nebo Django ORM) umožňuje kompozice:
- Vložit jeden objekt do jiného jako atribut.
- Spravovat životní cyklus vloženého objektu společně s rodičem.
- Zjednodušit práci s propojenými daty přístupem přes vlastnosti objektu.
Příklad na 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')
Zde User obsahuje Profile přes vztah relationship, což je příklad kompozice.