I would like to start a dicussion about what would be requred to and possibly specific details for making the database components of Question2Answer more modular, allowing implementors (and plugin developers, perhaps) to more easily swap RDBMS's (we have a need to move from MySQL to Oracle, for instance).
The goal would be to do this in a way that would allow this kind of change to be applied easily and have it persist through new versions of Question2Answer relatively well without having to sling too much code around.
From what I can see, the core DB functions are all compartmentalized but SQL statements are passed to them from many different areas (including plugins, making it harder) within the code. The SQL statements, of course, would all need to change depending on what RDBMS you need to use but Q2A already has a localization system in place - perhaps something like that mechanism could be used to allow the SQL to be abstracted to different RDBMS's.
Better than that, using stored procedures and functions embedded within the RDBMS to do the CRUD stuff would be ideal, requring that we only allow developers to override the core database functionality to support other database systems.
Looking for other's thoughts on this.