2006-07-28 : this model is now obsolete. See the new model for the "summer 2006" version of Project.module.
The project module is at the heart of drupal.org. Here is a UML model of how it stores its data:
As of Drupal 4.6.3 and HEAD today, project.module
uses a set of
seven tables in addition to core tables node
and users
.
This UML diagram
shows how they are logically related together.
Note that, as in the other diagrams in my Grokking Drupal series,
members pointing by a composition relation to the abstract class
project_file_info
are implemented in the physical data model as copies of the properties
from the abstract class directly embedded in the source class.
This representation is chosen to simplify reading and possibly encourage
future refactoring.
This might be only short-term information, as work is apparently under way to create a new project module taking advantage of the features in the upcoming 4.7 release, and the data model may change.
Tagged for drupal, UML, project module.
UPDATE - this post is available on drupal.org
Update : this page, as well as other in the Grokking Drupal series of my blog, is now available on drupal.org. The version on drupal.org will probably be updated with time, whereas this one probably won't be.
Great documentation
Great documentation. I guess this looks like an entity-relationship. What tool did you use to create this diagram?
Ben in DC
Model is created in ModelMaker
This was done using Model Maker, a UML modeler initially designed for Delphi, then extended to other languages, notably C#, and with which I'm very familiar, as I use it all the time with Delphi.
You might wonder why I use a Delphi/C# modeler for PHP: it's simply because, although it does not integrate with PHP, it's still by far the most convenient UML (and beyond) modeler I've found. It's a pity the publisher won't make a version for PHP, because I'd be sure to buy it.