The complete and updated documentation is spread in the following sources:
- The git of Osm2pgsql project: have an updated database schema at docs/pgsql.md, with the columns defined in default.style.
- The information about tags at https://taginfo.openstreetmap.org
There are no explicit reference (no SQL-expressed foreign key) between tables. Tables of the <<main>> datatype have a way field with the geometry, <<slim>> tables not. The <<dup>> tables are duplicates with enforced type of geometry (roads are enforced to be LineStrings).
Each import style changes tables and fields. Today --slim option is so recommended (not only for performance but also for updates) that we can use it as part of the default.
- questions like ref1, ref2...