<?xml version="1.0" encoding="UTF-8"?>
<mxfile host="app.diagrams.net" compressed="false">
<diagram id="editorial-catalog-er" name="Entity Relationship" syncFormat="1.0" diagramKind="er" inputHash="cbaac99586f1055f83f0b0afc37f6e40be4ab8bdd67097616fd59d94a57fcd9d" generatorVersion="0.7.0">
<mxGraphModel dx="1200" dy="820" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1280" pageHeight="900" math="0" shadow="0">
<root>
<mxCell id="0"/>
<mxCell id="1" parent="0"/>
<mxCell id="diagram-title" value="Editorial Catalog — Logical ER" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=23;fontStyle=1;fontColor=#292E35;spacing=0;align=left;verticalAlign=middle;" vertex="1" parent="1"><mxGeometry x="32" y="22" width="720" height="42" as="geometry"/></mxCell>
<mxCell id="legend-0-mark" value="" style="ellipse;html=1;aspect=fixed;fillColor=#FFFFFF;strokeColor=#59697D;strokeWidth=1.6;" vertex="1" parent="1"><mxGeometry x="32" y="85" width="10" height="10" as="geometry"/></mxCell>
<mxCell id="legend-0-text" value="Entity" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=13;fontStyle=0;fontColor=#292E35;spacing=0;align=left;verticalAlign=middle;" vertex="1" parent="1"><mxGeometry x="49" y="77" width="170" height="28" as="geometry"/></mxCell>
<mxCell id="legend-1-mark" value="" style="ellipse;html=1;aspect=fixed;fillColor=#FFFFFF;strokeColor=#343A42;strokeWidth=1.6;" vertex="1" parent="1"><mxGeometry x="254" y="85" width="10" height="10" as="geometry"/></mxCell>
<mxCell id="legend-1-text" value="Foreign Key" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=13;fontStyle=0;fontColor=#292E35;spacing=0;align=left;verticalAlign=middle;" vertex="1" parent="1"><mxGeometry x="271" y="77" width="170" height="28" as="geometry"/></mxCell>
<mxCell id="legend-2-mark" value="" style="ellipse;html=1;aspect=fixed;fillColor=#FFFFFF;strokeColor=#C58A21;strokeWidth=1.6;" vertex="1" parent="1"><mxGeometry x="476" y="85" width="10" height="10" as="geometry"/></mxCell>
<mxCell id="legend-2-text" value="Identifying FK" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=13;fontStyle=0;fontColor=#292E35;spacing=0;align=left;verticalAlign=middle;" vertex="1" parent="1"><mxGeometry x="493" y="77" width="170" height="28" as="geometry"/></mxCell>
<object id="article-revisions-fk" label="" componentId="article-revisions-fk" erType="edge" erRelationshipType="foreign-key" variant="warning" direction="forward" fromAttributeIds="revision-article-id" toAttributeIds="article-id" fromCardinality="zero-or-many" toCardinality="one" identifying="1" relationshipTitle="has revisions"><mxCell style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#C58A21;strokeWidth=1.6;endArrow=open;endFill=0;endSize=8;startArrow=none;exitX=0;exitY=0.48;exitDx=0;exitDy=0;exitPerimeter=1;entryX=1;entryY=0.48;entryDx=0;entryDy=0;entryPerimeter=1;" edge="1" parent="1" source="revisions" target="articles"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell></object>
<mxCell id="article-revisions-fk--label" value="has revisions&lt;br&gt;[0..* → 1]" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=12;fontStyle=1;fontColor=#292E35;spacing=0;labelBackgroundColor=#FFFFFF;" vertex="1" parent="1" syncRole="edge-label" ownerId="article-revisions-fk"><mxGeometry x="576.26" y="233" width="107.48" height="34" as="geometry"/></mxCell>
<object id="article-tags-article-fk" label="" componentId="article-tags-article-fk" erType="edge" erRelationshipType="foreign-key" variant="warning" direction="forward" fromAttributeIds="article-tag-article-id" toAttributeIds="article-id" fromCardinality="zero-or-many" toCardinality="one" identifying="1" relationshipTitle="classifies article"><mxCell style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#C58A21;strokeWidth=1.6;endArrow=open;endFill=0;endSize=8;startArrow=none;exitX=0.3;exitY=0;exitDx=0;exitDy=0;exitPerimeter=1;entryX=0.7;entryY=1;entryDx=0;entryDy=0;entryPerimeter=1;" edge="1" parent="1" source="article-tags" target="articles"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="959" y="460"/><mxPoint x="304" y="460"/></Array></mxGeometry></mxCell></object>
<mxCell id="article-tags-article-fk--label" value="classifies article&lt;br&gt;[0..* → 1]" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=12;fontStyle=1;fontColor=#292E35;spacing=0;labelBackgroundColor=#FFFFFF;" vertex="1" parent="1" syncRole="edge-label" ownerId="article-tags-article-fk"><mxGeometry x="557.66" y="423" width="144.68" height="34" as="geometry"/></mxCell>
<object id="article-tags-tag-fk" label="" componentId="article-tags-tag-fk" erType="edge" erRelationshipType="foreign-key" variant="warning" direction="forward" fromAttributeIds="article-tag-tag-id" toAttributeIds="tag-id" fromCardinality="zero-or-many" toCardinality="one" identifying="1" relationshipTitle="uses tag"><mxCell style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#C58A21;strokeWidth=1.6;endArrow=open;endFill=0;endSize=8;startArrow=none;exitX=0;exitY=0.62;exitDx=0;exitDy=0;exitPerimeter=1;entryX=1;entryY=0.62;entryDx=0;entryDy=0;entryPerimeter=1;" edge="1" parent="1" source="article-tags" target="tags"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell></object>
<mxCell id="article-tags-tag-fk--label" value="uses tag&lt;br&gt;[0..* → 1]" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=12;fontStyle=1;fontColor=#292E35;spacing=0;labelBackgroundColor=#FFFFFF;" vertex="1" parent="1" syncRole="edge-label" ownerId="article-tags-tag-fk"><mxGeometry x="586.76" y="633" width="86.48" height="34" as="geometry"/></mxCell>
<object id="articles" label="" componentId="articles" erType="entity" variant="delegated" erAttributes="[{&quot;id&quot;:&quot;article-id&quot;,&quot;name&quot;:&quot;id&quot;,&quot;dataType&quot;:&quot;uuid&quot;,&quot;nullable&quot;:false},{&quot;id&quot;:&quot;article-slug&quot;,&quot;name&quot;:&quot;slug&quot;,&quot;dataType&quot;:&quot;text&quot;,&quot;nullable&quot;:false},{&quot;id&quot;:&quot;article-title&quot;,&quot;name&quot;:&quot;title&quot;,&quot;dataType&quot;:&quot;text&quot;,&quot;nullable&quot;:false}]" erPrimaryKey="{&quot;id&quot;:&quot;articles-pk&quot;,&quot;attributeIds&quot;:[&quot;article-id&quot;]}" erUniqueKeys="[{&quot;id&quot;:&quot;articles-slug-uk&quot;,&quot;attributeIds&quot;:[&quot;article-slug&quot;]}]"><mxCell style="rounded=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#EDF3FF;strokeColor=#59697D;strokeWidth=1.6;" vertex="1" parent="1"><mxGeometry x="80" y="160" width="320" height="250" as="geometry"/></mxCell></object>
<mxCell id="articles--title" value="Article" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=15;fontStyle=1;fontColor=#292E35;spacing=0;align=center;verticalAlign=middle;" vertex="1" parent="articles" syncRole="title" ownerId="articles"><mxGeometry x="10" y="8" width="300" height="30" as="geometry"/></mxCell>
<mxCell id="articles--description" value="Editorial content identity." style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=12;fontStyle=0;fontColor=#58616C;spacing=0;align=center;verticalAlign=middle;" vertex="1" parent="articles" syncRole="description" ownerId="articles"><mxGeometry x="12" y="38" width="296" height="28" as="geometry"/></mxCell>
<mxCell id="articles--control-1" value="PK id: uuid" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=12;fontStyle=1;fontColor=#292E35;spacing=0;align=left;verticalAlign=middle;" vertex="1" parent="articles" syncRole="control" ownerId="articles"><mxGeometry x="14" y="72" width="292" height="24" as="geometry"/></mxCell>
<mxCell id="articles--control-2" value="UK slug: text" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=12;fontStyle=0;fontColor=#292E35;spacing=0;align=left;verticalAlign=middle;" vertex="1" parent="articles" syncRole="control" ownerId="articles"><mxGeometry x="14" y="100" width="292" height="24" as="geometry"/></mxCell>
<mxCell id="articles--control-3" value="title: text" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=12;fontStyle=0;fontColor=#292E35;spacing=0;align=left;verticalAlign=middle;" vertex="1" parent="articles" syncRole="control" ownerId="articles"><mxGeometry x="14" y="128" width="292" height="24" as="geometry"/></mxCell>
<object id="revisions" label="" componentId="revisions" erType="entity" variant="delegated" erAttributes="[{&quot;id&quot;:&quot;revision-article-id&quot;,&quot;name&quot;:&quot;article_id&quot;,&quot;dataType&quot;:&quot;uuid&quot;,&quot;nullable&quot;:false},{&quot;id&quot;:&quot;revision-number&quot;,&quot;name&quot;:&quot;revision_no&quot;,&quot;dataType&quot;:&quot;integer&quot;,&quot;nullable&quot;:false},{&quot;id&quot;:&quot;revision-body&quot;,&quot;name&quot;:&quot;body&quot;,&quot;dataType&quot;:&quot;text&quot;,&quot;nullable&quot;:false}]" erPrimaryKey="{&quot;id&quot;:&quot;revisions-pk&quot;,&quot;attributeIds&quot;:[&quot;revision-article-id&quot;,&quot;revision-number&quot;]}" erUniqueKeys="[]"><mxCell style="rounded=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#EDF3FF;strokeColor=#59697D;strokeWidth=1.6;" vertex="1" parent="1"><mxGeometry x="860" y="150" width="330" height="250" as="geometry"/></mxCell></object>
<mxCell id="revisions--title" value="Revision" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=15;fontStyle=1;fontColor=#292E35;spacing=0;align=center;verticalAlign=middle;" vertex="1" parent="revisions" syncRole="title" ownerId="revisions"><mxGeometry x="10" y="8" width="310" height="30" as="geometry"/></mxCell>
<mxCell id="revisions--description" value="Versioned article body." style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=12;fontStyle=0;fontColor=#58616C;spacing=0;align=center;verticalAlign=middle;" vertex="1" parent="revisions" syncRole="description" ownerId="revisions"><mxGeometry x="12" y="38" width="306" height="28" as="geometry"/></mxCell>
<mxCell id="revisions--control-1" value="PK article_id: uuid" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=12;fontStyle=1;fontColor=#292E35;spacing=0;align=left;verticalAlign=middle;" vertex="1" parent="revisions" syncRole="control" ownerId="revisions"><mxGeometry x="14" y="72" width="302" height="24" as="geometry"/></mxCell>
<mxCell id="revisions--control-2" value="PK revision_no: integer" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=12;fontStyle=1;fontColor=#292E35;spacing=0;align=left;verticalAlign=middle;" vertex="1" parent="revisions" syncRole="control" ownerId="revisions"><mxGeometry x="14" y="100" width="302" height="24" as="geometry"/></mxCell>
<mxCell id="revisions--control-3" value="body: text" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=12;fontStyle=0;fontColor=#292E35;spacing=0;align=left;verticalAlign=middle;" vertex="1" parent="revisions" syncRole="control" ownerId="revisions"><mxGeometry x="14" y="128" width="302" height="24" as="geometry"/></mxCell>
<object id="tags" label="" componentId="tags" erType="entity" variant="delegated" erAttributes="[{&quot;id&quot;:&quot;tag-id&quot;,&quot;name&quot;:&quot;id&quot;,&quot;dataType&quot;:&quot;uuid&quot;,&quot;nullable&quot;:false},{&quot;id&quot;:&quot;tag-name&quot;,&quot;name&quot;:&quot;name&quot;,&quot;dataType&quot;:&quot;text&quot;,&quot;nullable&quot;:false}]" erPrimaryKey="{&quot;id&quot;:&quot;tags-pk&quot;,&quot;attributeIds&quot;:[&quot;tag-id&quot;]}" erUniqueKeys="[{&quot;id&quot;:&quot;tags-name-uk&quot;,&quot;attributeIds&quot;:[&quot;tag-name&quot;]}]"><mxCell style="rounded=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#EDF3FF;strokeColor=#59697D;strokeWidth=1.6;" vertex="1" parent="1"><mxGeometry x="80" y="540" width="320" height="220" as="geometry"/></mxCell></object>
<mxCell id="tags--title" value="Tag" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=15;fontStyle=1;fontColor=#292E35;spacing=0;align=center;verticalAlign=middle;" vertex="1" parent="tags" syncRole="title" ownerId="tags"><mxGeometry x="10" y="8" width="300" height="30" as="geometry"/></mxCell>
<mxCell id="tags--description" value="Reusable editorial classification." style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=12;fontStyle=0;fontColor=#58616C;spacing=0;align=center;verticalAlign=middle;" vertex="1" parent="tags" syncRole="description" ownerId="tags"><mxGeometry x="12" y="38" width="296" height="28" as="geometry"/></mxCell>
<mxCell id="tags--control-1" value="PK id: uuid" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=12;fontStyle=1;fontColor=#292E35;spacing=0;align=left;verticalAlign=middle;" vertex="1" parent="tags" syncRole="control" ownerId="tags"><mxGeometry x="14" y="72" width="292" height="24" as="geometry"/></mxCell>
<mxCell id="tags--control-2" value="UK name: text" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=12;fontStyle=0;fontColor=#292E35;spacing=0;align=left;verticalAlign=middle;" vertex="1" parent="tags" syncRole="control" ownerId="tags"><mxGeometry x="14" y="100" width="292" height="24" as="geometry"/></mxCell>
<object id="article-tags" label="" componentId="article-tags" erType="entity" variant="delegated" erAttributes="[{&quot;id&quot;:&quot;article-tag-article-id&quot;,&quot;name&quot;:&quot;article_id&quot;,&quot;dataType&quot;:&quot;uuid&quot;,&quot;nullable&quot;:false},{&quot;id&quot;:&quot;article-tag-tag-id&quot;,&quot;name&quot;:&quot;tag_id&quot;,&quot;dataType&quot;:&quot;uuid&quot;,&quot;nullable&quot;:false}]" erPrimaryKey="{&quot;id&quot;:&quot;article-tags-pk&quot;,&quot;attributeIds&quot;:[&quot;article-tag-article-id&quot;,&quot;article-tag-tag-id&quot;]}" erUniqueKeys="[]"><mxCell style="rounded=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#EDF3FF;strokeColor=#59697D;strokeWidth=1.6;" vertex="1" parent="1"><mxGeometry x="860" y="520" width="330" height="230" as="geometry"/></mxCell></object>
<mxCell id="article-tags--title" value="Article Tag" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=15;fontStyle=1;fontColor=#292E35;spacing=0;align=center;verticalAlign=middle;" vertex="1" parent="article-tags" syncRole="title" ownerId="article-tags"><mxGeometry x="10" y="8" width="310" height="30" as="geometry"/></mxCell>
<mxCell id="article-tags--description" value="Identifying article-to-tag membership." style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=12;fontStyle=0;fontColor=#58616C;spacing=0;align=center;verticalAlign=middle;" vertex="1" parent="article-tags" syncRole="description" ownerId="article-tags"><mxGeometry x="12" y="38" width="306" height="28" as="geometry"/></mxCell>
<mxCell id="article-tags--control-1" value="PK article_id: uuid" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=12;fontStyle=1;fontColor=#292E35;spacing=0;align=left;verticalAlign=middle;" vertex="1" parent="article-tags" syncRole="control" ownerId="article-tags"><mxGeometry x="14" y="72" width="302" height="24" as="geometry"/></mxCell>
<mxCell id="article-tags--control-2" value="PK tag_id: uuid" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=12;fontStyle=1;fontColor=#292E35;spacing=0;align=left;verticalAlign=middle;" vertex="1" parent="article-tags" syncRole="control" ownerId="article-tags"><mxGeometry x="14" y="100" width="302" height="24" as="geometry"/></mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>
