encukou/test-1 — Issue #64: Higher-level schema layer
Author: encukou
Created: 2011-11-03 19:49:36+00:00
State: open
Labels: api, assigned-to Eevee, feature, high-priority, involved

**Reported by [Eevee](http://bugs.veekun.com/users/1) on 2011/04/28 04:50:46 +0000 · Migrated from [Redmine issue 593](http://bugs.veekun.com/issues/593)**

---

We have SQLAlchemy, and it is good. However it’s still pretty nuts-n-bolts, not exactly friendly to newcomers, and causes a lot of duplication for common tasks.

I propose a somewhat higher-level schema that sits right on top of the ORM classes, but focuses on the core types of objects (Pokémon, moves, types, items, etc.) and has better semantics attached.

I want to use this for:

- The JSON API
- Pokémon and move searches (prefetching, rendering)
- Displaying Pokémon and move tables elsewhere

EnCuKou and I have taken some vague notes on this: [http://titanpad.com/highlevel-schema](http://titanpad.com/highlevel-schema)

Redmine metadata:
Updated on: 2011/09/14 05:42:44 +0000
Start date: 2011/04/28
Relations:
blocks #594

---

**Comment by [En-Cu-Kou](http://github.com/encukou) from 2011/05/02 07:51:31 +0000**

Some more discussion has taken place on [http://titanpad.com/highlevel-schema-impl](http://titanpad.com/highlevel-schema-impl)

---

**Comment by [Eevee](http://bugs.veekun.com/users/1) from 2011/09/14 05:42:44 +0000**

After much reflection, i don’t think this should be an entire *layer*. It should probably just be a cleanup of the schema, with perhaps some helper functions.