Kieran Lal wrote:
There are currently 107 database tables in the latest release of CivicSpace. I believe there are 55 in Drupal core. One of the most important things you can do in improving database performance is to make sure you have the right indicies for your database. Currently we do not use foriegn keys to enforce relationships between database tables. I did an analysis of the CivicSpace code base and found that there was 156 SQL statements with at least one JOIN. We can consider these as application level relationships between tables. Here is a visual representation of those JOINs: http://civicspacelabs.org/home/files/schema.png I also analysed the indicies of the current database schema. There are 182 indicies.
As a partial step to documenting the database schema, I can create an ERD and physical data diagram if I can get the list of table joins which imply an application level relationship. I would be interested in doing this for Drupal first, and if it's easy enough, I could do CivicSpace, too. -- Chris Johnson