mirror of
https://github.com/xbgmsharp/postgsail.git
synced 2025-09-17 11:17:46 +00:00
refactor documentation
This commit is contained in:
34
docs/ERD/README.md
Normal file
34
docs/ERD/README.md
Normal file
@@ -0,0 +1,34 @@
|
||||
# PostgSail ERD
|
||||
The Entity-Relationship Diagram (ERD) provides a graphical representation of database tables, columns, and inter-relationships. ERD can give sufficient information for the database administrator to follow when developing and maintaining the database.
|
||||
|
||||
## A global overview
|
||||
Auto generated Mermaid diagram using [mermerd](https://github.com/KarnerTh/mermerd) and [MermaidJs](https://github.com/mermaid-js/mermaid).
|
||||
|
||||
[PostgSail SQL Schema](https://github.com/xbgmsharp/postgsail/tree/main/docs/ERD/postgsail.md "PostgSail SQL Schema")
|
||||
|
||||
## Further
|
||||
There is 3 main schemas:
|
||||
- API Schema:
|
||||
- tables
|
||||
- metrics
|
||||
- logbook
|
||||
- ...
|
||||
- functions
|
||||
- ...
|
||||
|
||||
- Auth Schema:
|
||||
- tables
|
||||
- accounts
|
||||
- vessels
|
||||
- ...
|
||||
- functions
|
||||
- ...
|
||||
|
||||
- Public Schema:
|
||||
- tables
|
||||
- app_settings
|
||||
- tpl_messages
|
||||
- ...
|
||||
- functions
|
||||
- ...
|
||||
|
35
docs/ERD/mermerdConfig.yaml
Normal file
35
docs/ERD/mermerdConfig.yaml
Normal file
@@ -0,0 +1,35 @@
|
||||
# Connection properties
|
||||
connectionString: ${PGSAIL_DB_URI}
|
||||
|
||||
# Define what schemas should be used
|
||||
#useAllSchemas: true
|
||||
# or
|
||||
schema:
|
||||
- "public"
|
||||
- "api"
|
||||
- "auth"
|
||||
|
||||
# Define what tables should be used
|
||||
useAllTables: true
|
||||
# or
|
||||
#selectedTables:
|
||||
# - city
|
||||
# - customer
|
||||
|
||||
# Additional flags
|
||||
showAllConstraints: true
|
||||
encloseWithMermaidBackticks: true
|
||||
outputFileName: "postgsail.md"
|
||||
debug: true
|
||||
omitConstraintLabels: true
|
||||
omitAttributeKeys: true
|
||||
showDescriptions:
|
||||
- enumValues
|
||||
- columnComments
|
||||
- notNull
|
||||
showSchemaPrefix: true
|
||||
schemaPrefixSeparator: "_"
|
||||
|
||||
# Names must match the pattern <schema><schema_prefix><table>
|
||||
#relationshipLabels:
|
||||
# - "public_table public_another-table : label"
|
259
docs/ERD/postgsail.md
Normal file
259
docs/ERD/postgsail.md
Normal file
@@ -0,0 +1,259 @@
|
||||
```mermaid
|
||||
erDiagram
|
||||
api_logbook {
|
||||
text _from
|
||||
double_precision _from_lat
|
||||
double_precision _from_lng
|
||||
integer _from_moorage_id "Link api.moorages with api.logbook via FOREIGN KEY and REFERENCES"
|
||||
timestamp_with_time_zone _from_time "{NOT_NULL}"
|
||||
text _to
|
||||
double_precision _to_lat
|
||||
double_precision _to_lng
|
||||
integer _to_moorage_id "Link api.moorages with api.logbook via FOREIGN KEY and REFERENCES"
|
||||
timestamp_with_time_zone _to_time
|
||||
boolean active
|
||||
double_precision avg_speed
|
||||
numeric distance "in NM"
|
||||
interval duration "Best to use standard ISO 8601"
|
||||
jsonb extra "computed signalk metrics of interest, runTime, currentLevel, etc"
|
||||
integer id "{NOT_NULL}"
|
||||
double_precision max_speed
|
||||
double_precision max_wind_speed
|
||||
text name
|
||||
text notes
|
||||
geography track_geog "postgis geography type default SRID 4326 Unit: degres"
|
||||
jsonb track_geojson "store generated geojson with track metrics data using with LineString and Point features, we can not depend api.metrics table"
|
||||
geometry track_geom "postgis geometry type EPSG:4326 Unit: degres"
|
||||
text vessel_id "{NOT_NULL}"
|
||||
}
|
||||
|
||||
api_metadata {
|
||||
boolean active "trigger monitor online/offline"
|
||||
boolean active
|
||||
double_precision beam
|
||||
text client_id
|
||||
timestamp_with_time_zone created_at "{NOT_NULL}"
|
||||
double_precision height
|
||||
integer id "{NOT_NULL}"
|
||||
double_precision length
|
||||
numeric mmsi
|
||||
text name
|
||||
text plugin_version "{NOT_NULL}"
|
||||
numeric ship_type
|
||||
text signalk_version "{NOT_NULL}"
|
||||
timestamp_with_time_zone time "{NOT_NULL}"
|
||||
timestamp_with_time_zone updated_at "{NOT_NULL}"
|
||||
text vessel_id "Link auth.vessels with api.metadata via FOREIGN KEY and REFERENCES {NOT_NULL}"
|
||||
text vessel_id "{NOT_NULL}"
|
||||
}
|
||||
|
||||
api_metrics {
|
||||
double_precision anglespeedapparent
|
||||
text client_id
|
||||
double_precision courseovergroundtrue
|
||||
double_precision latitude "With CONSTRAINT but allow NULL value to be ignored silently by trigger"
|
||||
double_precision longitude "With CONSTRAINT but allow NULL value to be ignored silently by trigger"
|
||||
jsonb metrics
|
||||
double_precision speedoverground
|
||||
status status "<sailing,motoring,moored,anchored>"
|
||||
timestamp_with_time_zone time "{NOT_NULL}"
|
||||
text vessel_id "{NOT_NULL}"
|
||||
double_precision windspeedapparent
|
||||
}
|
||||
|
||||
api_moorages {
|
||||
text country
|
||||
geography geog "postgis geography type default SRID 4326 Unit: degres"
|
||||
boolean home_flag
|
||||
integer id "{NOT_NULL}"
|
||||
double_precision latitude
|
||||
double_precision longitude
|
||||
text name
|
||||
jsonb nominatim
|
||||
text notes
|
||||
jsonb overpass
|
||||
integer reference_count
|
||||
integer stay_code "Link api.stays_at with api.moorages via FOREIGN KEY and REFERENCES"
|
||||
interval stay_duration "Best to use standard ISO 8601"
|
||||
text vessel_id "{NOT_NULL}"
|
||||
}
|
||||
|
||||
api_stays {
|
||||
boolean active
|
||||
timestamp_with_time_zone arrived "{NOT_NULL}"
|
||||
timestamp_with_time_zone departed
|
||||
interval duration "Best to use standard ISO 8601"
|
||||
geography geog "postgis geography type default SRID 4326 Unit: degres"
|
||||
integer id "{NOT_NULL}"
|
||||
double_precision latitude
|
||||
double_precision longitude
|
||||
integer moorage_id "Link api.moorages with api.stays via FOREIGN KEY and REFERENCES"
|
||||
text name
|
||||
text notes
|
||||
integer stay_code "Link api.stays_at with api.stays via FOREIGN KEY and REFERENCES"
|
||||
text vessel_id "{NOT_NULL}"
|
||||
}
|
||||
|
||||
api_stays_at {
|
||||
text description "{NOT_NULL}"
|
||||
integer stay_code "{NOT_NULL}"
|
||||
}
|
||||
|
||||
auth_accounts {
|
||||
timestamp_with_time_zone connected_at "{NOT_NULL}"
|
||||
timestamp_with_time_zone created_at "{NOT_NULL}"
|
||||
citext email "{NOT_NULL}"
|
||||
text first "User first name with CONSTRAINT CHECK {NOT_NULL}"
|
||||
text last "User last name with CONSTRAINT CHECK {NOT_NULL}"
|
||||
text pass "{NOT_NULL}"
|
||||
jsonb preferences
|
||||
integer public_id "{NOT_NULL}"
|
||||
name role "{NOT_NULL}"
|
||||
timestamp_with_time_zone updated_at "{NOT_NULL}"
|
||||
text user_id "{NOT_NULL}"
|
||||
}
|
||||
|
||||
auth_otp {
|
||||
text otp_pass "{NOT_NULL}"
|
||||
timestamp_with_time_zone otp_timestamp
|
||||
smallint otp_tries "{NOT_NULL}"
|
||||
citext user_email "{NOT_NULL}"
|
||||
}
|
||||
|
||||
auth_users {
|
||||
timestamp_with_time_zone connected_at "{NOT_NULL}"
|
||||
timestamp_with_time_zone created_at "{NOT_NULL}"
|
||||
name email "{NOT_NULL}"
|
||||
text first "{NOT_NULL}"
|
||||
name id "{NOT_NULL}"
|
||||
text last "{NOT_NULL}"
|
||||
jsonb preferences
|
||||
name role "{NOT_NULL}"
|
||||
timestamp_with_time_zone updated_at "{NOT_NULL}"
|
||||
text user_id "{NOT_NULL}"
|
||||
}
|
||||
|
||||
auth_vessels {
|
||||
timestamp_with_time_zone created_at "{NOT_NULL}"
|
||||
numeric mmsi
|
||||
text name "{NOT_NULL}"
|
||||
citext owner_email "{NOT_NULL}"
|
||||
name role "{NOT_NULL}"
|
||||
timestamp_with_time_zone updated_at "{NOT_NULL}"
|
||||
text vessel_id "{NOT_NULL}"
|
||||
}
|
||||
|
||||
public_aistypes {
|
||||
text description
|
||||
numeric id
|
||||
}
|
||||
|
||||
public_app_settings {
|
||||
text name "application settings name key {NOT_NULL}"
|
||||
text value "application settings value {NOT_NULL}"
|
||||
}
|
||||
|
||||
public_badges {
|
||||
text description
|
||||
text name
|
||||
}
|
||||
|
||||
public_email_templates {
|
||||
text email_content
|
||||
text email_subject
|
||||
text name
|
||||
text pushover_message
|
||||
text pushover_title
|
||||
}
|
||||
|
||||
public_geocoders {
|
||||
text name
|
||||
text reverse_url
|
||||
text url
|
||||
}
|
||||
|
||||
public_iso3166 {
|
||||
text alpha_2
|
||||
text alpha_3
|
||||
text country
|
||||
integer id
|
||||
}
|
||||
|
||||
public_mid {
|
||||
text country
|
||||
integer country_id
|
||||
numeric id
|
||||
}
|
||||
|
||||
public_ne_10m_geography_marine_polys {
|
||||
text changed
|
||||
text featurecla
|
||||
geometry geom
|
||||
integer gid "{NOT_NULL}"
|
||||
text label
|
||||
double_precision max_label
|
||||
double_precision min_label
|
||||
text name
|
||||
text name_ar
|
||||
text name_bn
|
||||
text name_de
|
||||
text name_el
|
||||
text name_en
|
||||
text name_es
|
||||
text name_fa
|
||||
text name_fr
|
||||
text name_he
|
||||
text name_hi
|
||||
text name_hu
|
||||
text name_id
|
||||
text name_it
|
||||
text name_ja
|
||||
text name_ko
|
||||
text name_nl
|
||||
text name_pl
|
||||
text name_pt
|
||||
text name_ru
|
||||
text name_sv
|
||||
text name_tr
|
||||
text name_uk
|
||||
text name_ur
|
||||
text name_vi
|
||||
text name_zh
|
||||
text name_zht
|
||||
text namealt
|
||||
bigint ne_id
|
||||
text note
|
||||
smallint scalerank
|
||||
text wikidataid
|
||||
}
|
||||
|
||||
public_process_queue {
|
||||
text channel "{NOT_NULL}"
|
||||
integer id "{NOT_NULL}"
|
||||
text payload "{NOT_NULL}"
|
||||
timestamp_with_time_zone processed
|
||||
text ref_id "either user_id or vessel_id {NOT_NULL}"
|
||||
timestamp_with_time_zone stored "{NOT_NULL}"
|
||||
}
|
||||
|
||||
public_spatial_ref_sys {
|
||||
character_varying auth_name
|
||||
integer auth_srid
|
||||
character_varying proj4text
|
||||
integer srid "{NOT_NULL}"
|
||||
character_varying srtext
|
||||
}
|
||||
|
||||
api_logbook }o--|| api_metadata : ""
|
||||
api_logbook }o--|| api_moorages : ""
|
||||
api_logbook }o--|| api_moorages : ""
|
||||
api_metadata }o--|| auth_vessels : ""
|
||||
api_metrics }o--|| api_metadata : ""
|
||||
api_moorages }o--|| api_metadata : ""
|
||||
api_stays }o--|| api_metadata : ""
|
||||
api_moorages }o--|| api_stays_at : ""
|
||||
api_stays }o--|| api_moorages : ""
|
||||
api_stays }o--|| api_stays_at : ""
|
||||
auth_otp |o--|| auth_accounts : ""
|
||||
auth_vessels |o--|| auth_accounts : ""
|
||||
```
|
BIN
docs/ERD/postgsail.pgerd.png
Normal file
BIN
docs/ERD/postgsail.pgerd.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 360 KiB |
BIN
docs/ERD/signalk - api.png
Normal file
BIN
docs/ERD/signalk - api.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 222 KiB |
BIN
docs/ERD/signalk - auth.png
Normal file
BIN
docs/ERD/signalk - auth.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 18 KiB |
BIN
docs/ERD/signalk - public.png
Normal file
BIN
docs/ERD/signalk - public.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 195 KiB |
Reference in New Issue
Block a user