application structure: DOM (object model for how a character should be mapped), GUI (how should the application look), DB (how should the database layer be managed), etc.
you might want to use a database abstraction layer, so it is not tied to any one database. there are several available for C/C++, including:
SQL Relayand
libdbisqlrelay is more comprehensive and is a lot more than just a DB abstraction layer, it also does connection proxying, query caching and lots more. it may be overkill for this job.
libdbi is essentially a clone of the DBI perl modules, but for C, and is a lot simpler than SQL Relay.
both include support for postgresql, mysql, sqlite, interbase, sybase, MS SQL. SQL Relay also has support for Oracle and a few others. libdbi has preliminary support for Oracle and mSQL.
both are free software. libdbi is LGPL, and different parts of SQL Relay are covered by different licenses (e.g. the perl library is Artistic license), mostly GPL & LGPL. all GPL/LGPL compatible.