Expert guidelines for SQL schema design, ORM usage (SQLAlchemy), and query optimization.
<tech_stack>
<core_principles>
Schema Design:
WHERE, ORDER BY, JOIN.NOT NULL, UNIQUE, CHECK).SQLAlchemy Best Practices:
.options(selectinload/joinedload) for relationships.declarative_base for model definitions.async with session:) to ensure connections close.Migration Safety:
downgrade()).Performance:
bulk_insert_mappings or insert().values([...]) for large datasets (e.g., importing 10k candles).class TradeRepository: def init(self, session: AsyncSession): self.session = session
async def get_recent_trades(self, ticker: str, limit: int = 100) -> List[Trade]:
# Efficient query with index usage
stmt = (
select(Trade)
.where(Trade.ticker == ticker)
.order_by(Trade.created_at.desc())
.limit(limit)
)
result = await self.session.execute(stmt)
return result.scalars().all()
</examples>