CiviCRM Database Structure
CiviCRM, the open source CRM designed especially for nonprofit organizations, requires a specific database structure to work properly. Certain Web hosts don't offer it. We have had to move some clients' sites upon realizing that their host did not offer it.
MySQL is a Web-based database that CiviCRM uses. The database structure it requires is known as InnoDB.
Sitepoint.com gives a great explanation of the pros and cons of the InnoDB database structure. It is "less well known than the default MyISAM table type". We'll highlight a couple of the features as they relate to CiviCRM:
1. Data integrity and foreign key constraints
CiviCRM can establish relationships between individuals, organizations, event registrations, memberships, and contributions, among other things. InnoDB ensures that the individual exists in the database before connecting them to any of these items. You can imagine how messy the database could get without this - lots of floating data.
2. No full-text search
One of our clients was interested in offering a full text search for a membership directory. We had to break the news to them that CiviCRM did not work that way. The reason? The InnoDB tables. All of the complex connections makes it difficult to match keywords against multiple columns in the database tables.
Overall, we think the pros of InnoDB outweigh the cons. If you need help with hosting CiviCRM, get in touch with us.

