There are several routing engines. PGRouting looks very nice for several reasons:
- pg routing is written in pure SQL (requiring Postgis/PostgreSQL).
- routing network configurable: can route over streets as well as over waterways or powerlines
- costs of routing networks can be stored in a fixed table or otherwise attatched by an SQL query.
That should allow to provide many different profiles.
- costs can be direction dependent
- support of node and way weigths
The database schema of PGRouting is not well documented, but exposed in the source of the class Export2DB.
The schema stores OSM ids. For ways these IDs are stored explicitely in the table „ways“, as ways are not stored in their original form, but sliced to routing segments. IDs of nodes and relations are stored in their original form.
Using only this routing database will not be sufficient as it lacks all tags not relevant for routing, Usage in combination with other modules of the portal could be completely separated (e.g. in a different postgres schema)