The document discusses SQLAlchemy, an object-relational mapper (ORM) for Python. It covers active records and data mappers, declarative mapping, relationships, inheritance, sessions, and more. SQLAlchemy allows mapping Python classes to database tables, provides flexibility in schema design and relationships, and handles data processing through its unit of work pattern.
11. 関連マッピング
class Employee(Base):
__tablename__ = 'employee'
id = Column(Integer, primary_key=True)
.....
company_id = Column(Integer,
ForeignKey('company.id'))
class Company(Base):
__tablename__ = 'company'
id = Column(Integer, primary_key=True)
employees = relation(Employee, backref="company")
12. 多対多
user_keyword_table = Table('user_keyword', meta,
Column('user_id', ForeignKey('user.id')),
Column('keyword_id', ForeignKey('keyword.id')))
class User(Base):
id = Column(Integer, primary_key=True)
class Keyword(Base):
id = Column(Integer, primary_key=True)
users = relation(User, backref='keywords',
secondary=user_keyword_table)
13. 関連属性(1)
class User(Base):
id = Column(Integer, primary_key=True)
name = Column(String(255), unique=True)
class Keyword(Base):
id = Column(Integer, primary_key=True)
word = Column(String(255), unique=True)
17. 関連属性 AssociationProxy
class User(Base):
id = Column(Integer, primary_key=True)
name = Column(String(255), unique=True)
keywords = association_proxy('kw', 'keyword')
class Keyword(Base):
id = Column(Integer, primary_key=True)
word = Column(String(255), unique=True)
users= association_proxy('us', 'user')