# Future Ideas ## Generated DDL Is it worth it to do simple table definitions with dataclasses? ```python @dataclass class Teacher: id: int = field(metadata=PRIMARY_KEY) name: str classroom: str = field(metadata=UNIQUE) @dataclass class Student: id: int = field(metadata=PRIMARY_KEY) name: str teacher_id: int = field(metadata=references(Teacher.id)) ``` It could offer the nice default of a "strict" table. ## Query Building If we have the above, how easy would it be to get something like sqlalchemy's query building without it getting too complex? ## User Functions 1. Make it check how many args it takes so you can't accidentally give the wrong answer. 2. Optionally register user functions for almost every string method, because it'll have nicer semantics / familiarity than sqlite's functions. ## Transaction Decorator Ensure that a function/method holds open a savepoint for the whole body. Nice to reduce additional nesting-- if it's a method and not a function, you're already 3 levels deep before writing any db code! ## Real-World Usecase We need a nice example app!