Since many tables use a reference to a Module,
the PHProjekt have an own table and class for manage them.

Function Phprojekt_Module::getId($module,$projectId).
This function will return the internal moduleId used for the name $module.
The projectId is needed because the modules can be actived or desactived
for each project.
For manage that, there is a table ModuleProjectRelation.
This table is used by the class with a the inner join when is looking for all the modules.
If not $projectId is setted, the class will use the projectId 1 (Invisible Root).

Function Phprojekt_Module::getModuleName($id,$projectId).
Work in the same way that getId when is looking for the modules.
But this function return the name of the module using the $id.

The class contain an internal cache for reduce the amount of queries.