As part of my ongoing project to create ER (Entity Relationships) diagrams for Moodle I have been working on enhancing the tool I use to generate the SQL that I reverse engineer into the diagram. The latest feature is to allow me to create some XML that stores "inferred relationships", i.e. tables/columns that look like they should have primary/foreign key relationships (PK/FK) but where that data is not in the Moodle table source code.
The first fruit of this is a diagram that I believe to show the relationships between the tables in the competencies module delivered for Moodle 3.1. You can see a first attempt at this at
http://www.examulator.com/er/3.1/components/competency.png
and
http://www.examulator.com/er/3.1/components/competency.pdf
(same diagram different format).
Note that if the image appears fuzzy, click your mouse and it will come into focus.
I intend to produce a diagram for 3.1 in the same way as I have for previous versions of Moodle (see the 3.0 diagram here http://www.examulator.com/er/) and will work through each of the sub components as seen here
http://www.examulator.com/er/components/index.html
The code that generates the SQL and manages the additional relationships can be found here
https://github.com/marcusgreen/moodle_local-sqlgenerator
All feedback greatly appreciated.