Traq 4.0 is going to use models less-often. Models will be used a query isn't enough. Though for most data-fetching, a model won't be used.
For example, I've rewritten most of the 4.0 codebase to use a query (well, query builder to hopefully support MySQL and PostgreSQL), with a bunch of joins to fetch other data. This results in one query being used instead of 15 queries, I speak of course of the Ticket Listing page.
Depending on what columns where being displayed:
The ticket listing page used to fetch:
That's 10 queries just to display the tickets, then there were the queries to fetch the necessary information to filter them, such as:
- Owner IDs
- Milestone IDs
- Version IDs
- Type IDs
- Status IDs
- Priority IDs
- Severity IDs
- Assignee IDs
That's right, some requests were executing 18 queries! Not too much data was being fetched through, so no servers were over-worked and requests never took too long. But still.
But no longer!
In Traq 4.0, I've decided to change that, the ticket listing page now executes one query to fetch the same data.