Howdy,
I've been working on a utility that generates ruby on rails models from the linuxmce databases. One of the utilities available for rails is railroad (
http://railroad.rubyforge.org/) which can create graphical views of the data model relationships. The normal graph for models is dot, which views as a couple of rows. This doesn't work too well for the 319 models of LinuxMCE. Controllers are normally displayed using neato, which views most interconnects in the center, fewer interconnects away from the center. For grins I created a neato view of the models. This is pretty close to an ERD. But with 319 models, it doesn't look too useful. For your viewing pleasure, here are the graphs:
http://roy.wright.org/linuxmce/models.dot.svg http://roy.wright.org/linuxmce/models.neato.svgThe size of the SVG files seems to cause firefox some problems, I found that inkscape (
http://www.inkscape.org/) views them well. The zoom in/out (+/-) helps.
See Graphviz (
http://www.graphviz.org/) for details on dot and neato.
BTW, I think I have all the relationships being modeled correctly. I'm going to start a UI today to give a few of models a more thorough check out. I don't see anyway to automate generating field validations, so there is a lot of work ahead.
Just to give you a taste of model usage:
>> PlutoMedia::File.find(1520).media_type.Description
=> "LinuxMCE Pictures"
>> PlutoMain::User.find_by_UserName('Roy').user_mode.Description
=> "At Home"
The first is an external join for PK_File == 1520 (the media_type references PlutoMain::MediaType). The later is a foreign key join (user_mode references PlutoMain::UserMode). IMO mucho prettier than SQL.
Have fun,
Roy