110 lines
No EOL
4.3 KiB
XML
110 lines
No EOL
4.3 KiB
XML
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
<svg width="800" height="600" xmlns="http://www.w3.org/2000/svg">
|
|
<style>
|
|
svg{
|
|
background : white;
|
|
}
|
|
.table {
|
|
fill: #f5f5f5;
|
|
stroke: #333;
|
|
stroke-width: 2;
|
|
}
|
|
.table-header {
|
|
fill: #4285f4;
|
|
stroke: #333;
|
|
stroke-width: 2;
|
|
}
|
|
.table-text {
|
|
font-family: Arial, sans-serif;
|
|
font-size: 14px;
|
|
fill: #333;
|
|
}
|
|
.header-text {
|
|
font-family: Arial, sans-serif;
|
|
font-size: 16px;
|
|
font-weight: bold;
|
|
fill: white;
|
|
}
|
|
.pk {
|
|
font-weight: bold;
|
|
}
|
|
.fk {
|
|
fill: #0066cc;
|
|
}
|
|
.arrow {
|
|
stroke: #666;
|
|
stroke-width: 2;
|
|
fill: none;
|
|
marker-end: url(#arrowhead);
|
|
}
|
|
.title {
|
|
font-family: Arial, sans-serif;
|
|
font-size: 24px;
|
|
font-weight: bold;
|
|
fill: #333;
|
|
}
|
|
</style>
|
|
|
|
<defs>
|
|
<marker id="arrowhead" markerWidth="10" markerHeight="7" refX="9" refY="3.5" orient="auto">
|
|
<polygon points="0 0, 10 3.5, 0 7" fill="#666" />
|
|
</marker>
|
|
</defs>
|
|
|
|
<text x="400" y="40" class="title" text-anchor="middle">OpenEventDatabase Schema</text>
|
|
|
|
<!-- events table -->
|
|
<rect x="100" y="100" width="250" height="220" rx="5" ry="5" class="table" />
|
|
<rect x="100" y="100" width="250" height="30" rx="5" ry="5" class="table-header" />
|
|
<text x="225" y="120" class="header-text" text-anchor="middle">events</text>
|
|
|
|
<text x="110" y="150" class="table-text pk">events_id (uuid)</text>
|
|
<text x="110" y="170" class="table-text">createdate (timestamp)</text>
|
|
<text x="110" y="190" class="table-text">lastupdate (timestamp)</text>
|
|
<text x="110" y="210" class="table-text">events_type (text)</text>
|
|
<text x="110" y="230" class="table-text">events_what (text)</text>
|
|
<text x="110" y="250" class="table-text">events_when (tstzrange)</text>
|
|
<text x="110" y="270" class="table-text fk">events_geo (text) → geo.hash</text>
|
|
<text x="110" y="290" class="table-text">events_tags (jsonb)</text>
|
|
|
|
<!-- events_deleted table -->
|
|
<rect x="100" y="350" width="250" height="200" rx="5" ry="5" class="table" />
|
|
<rect x="100" y="350" width="250" height="30" rx="5" ry="5" class="table-header" />
|
|
<text x="225" y="370" class="header-text" text-anchor="middle">events_deleted</text>
|
|
|
|
<text x="110" y="400" class="table-text">events_id (uuid)</text>
|
|
<text x="110" y="420" class="table-text">createdate (timestamp)</text>
|
|
<text x="110" y="440" class="table-text">lastupdate (timestamp)</text>
|
|
<text x="110" y="460" class="table-text">events_type (text)</text>
|
|
<text x="110" y="480" class="table-text">events_what (text)</text>
|
|
<text x="110" y="500" class="table-text">events_when (tstzrange)</text>
|
|
<text x="110" y="520" class="table-text">events_geo (text)</text>
|
|
<text x="110" y="540" class="table-text">events_tags (jsonb)</text>
|
|
|
|
<!-- geo table -->
|
|
<rect x="450" y="150" width="250" height="140" rx="5" ry="5" class="table" />
|
|
<rect x="450" y="150" width="250" height="30" rx="5" ry="5" class="table-header" />
|
|
<text x="575" y="170" class="header-text" text-anchor="middle">geo</text>
|
|
|
|
<text x="460" y="200" class="table-text">geom (geometry)</text>
|
|
<text x="460" y="220" class="table-text pk">hash (text)</text>
|
|
<text x="460" y="240" class="table-text">geom_center (point)</text>
|
|
<text x="460" y="260" class="table-text">idx (geometry)</text>
|
|
|
|
<!-- Relationship arrow -->
|
|
<path d="M 350 270 L 400 270 L 400 220 L 450 220" class="arrow" />
|
|
|
|
<!-- Indexes -->
|
|
<rect x="450" y="350" width="250" height="200" rx="5" ry="5" class="table" />
|
|
<rect x="450" y="350" width="250" height="30" rx="5" ry="5" class="table-header" />
|
|
<text x="575" y="370" class="header-text" text-anchor="middle">Indexes</text>
|
|
|
|
<text x="460" y="400" class="table-text">events_idx_antidup (unique)</text>
|
|
<text x="460" y="420" class="table-text">events_idx_id (unique)</text>
|
|
<text x="460" y="440" class="table-text">events_idx_lastupdate</text>
|
|
<text x="460" y="460" class="table-text">events_idx_what (spgist)</text>
|
|
<text x="460" y="480" class="table-text">events_idx_when (spgist)</text>
|
|
<text x="460" y="500" class="table-text">geo_geom (gist)</text>
|
|
<text x="460" y="520" class="table-text">geo_idx (gist)</text>
|
|
<text x="460" y="540" class="table-text">events_idx_where_osm (spgist)</text>
|
|
</svg> |