Overview
Models
rframe does not try to bend the website to the database's schema, or the database's schema to the website. The way we want to store things in the database does not align with the way things may be used or viewed in the website. What that means is we need a translation layer between website and database. This is the src/model folder in rframe, along with extensions for a specific website in src/bin/example/model. The model holds these functions that deal with this translation between website and database, and in many ways is the heart of the database.
Database
rframe favours heavy dependence on the database. For projects of the scale that rframe is intended to, someone is far more likely to change languages than to change database. There's more discussion in Database Philosophy. Briefly, you will find that a lot of the functionality for rframe is either in stored procedures or hard coded SQL. It will also make use of PostgreSQL specific features, on the assumption that we won't be using other databases for the core functionality.
Warning
You will need to apply both rframe's database migrations using sqitch, as well as the migrations for your specific website using whichever migration tool you prefer. That also means that if you upgrade rframe, you will need to manually apply the latest rframe database migrations.