I’m trying to automatically generate ERD data diagrams from input data, when I put a graph formatted using html styled tables through neato
, I get a spread-out layout,
[dot engine=neato scale=“0.08” height=“100” width=“600”]
digraph { graph [center=true, esep=0.1, mode=ipsep, overlap=ortho, rankdir=TB, sep=0.25, splines=True ]; node [fontname="DejaVu Sans", label="\N" ]; "[www.tkltd.org//ontologies/27f7c559482b45afa110eeba5518ff45](https://www.tkltd.org//ontologies/27f7c559482b45afa110eeba5518ff45)" [height=1.9306, label=< <table id="Inventory.Inventory.Product" BORDER="0" CELLBORDER="1" CELLSPACING="0" STYLE="ROUNDED"> <tr> <td colspan="5" bgcolor='grey'><font point-size='18' color='#ffffff'><B>Product</B></font></td> </tr> <tr> <td colspan="5" ALIGN="LEFT" BALIGN="LEFT">Individual products and their descriptions</td> </tr> <tr><td><B>Attribute</B></td><td><B>Description</B></td><td ><B>Datatype</B></td><td ><B>Nulls</B></td><td ><B>PK</B></td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>p_id</B></td><td ALIGN="LEFT" BALIGN="LEFT">Id field of the product by which it is coded</td><td>integer</td><td></td><td >Yes</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>description</B></td><td ALIGN="LEFT" BALIGN="LEFT">Description of the product.</td><td>string</td><td></td><td >No</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>p_name</B></td><td ALIGN="LEFT" BALIGN="LEFT">Unique name of the product.</td><td>string</td><td></td><td >No</td></tr> </table>>, pos="282,132.5", shape=plaintext, width=7.8333]; "[www.tkltd.org//ontologies/37bf07d15e264bdc8c3fb17369bef0c6](https://www.tkltd.org//ontologies/37bf07d15e264bdc8c3fb17369bef0c6)" [height=1.9306, label=< <table id="Inventory.Inventory.Inventory" BORDER="0" CELLBORDER="1" CELLSPACING="0" STYLE="ROUNDED"> <tr> <td colspan="5" bgcolor='grey'><font point-size='18' color='#ffffff'><B>Inventory</B></font></td> </tr> <tr> <td colspan="5" ALIGN="LEFT" BALIGN="LEFT">Inventory of products located at a location</td> </tr> <tr><td><B>Attribute</B></td><td><B>Description</B></td><td ><B>Datatype</B></td><td ><B>Nulls</B></td><td ><B>PK</B></td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>loc_id</B></td><td ALIGN="LEFT" BALIGN="LEFT">Identity of the location.</td><td>integer</td><td></td><td >Yes</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>p_id</B></td><td ALIGN="LEFT" BALIGN="LEFT">Identity of the product.</td><td>integer</td><td></td><td >Yes</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>p_loc_count</B></td><td ALIGN="LEFT" BALIGN="LEFT">Count of the product at this location.</td><td>integer</td><td></td><td >No</td></tr> </table>>, pos="948,132.5", shape=plaintext, width=7.3472]; "[www.tkltd.org//ontologies/37bf07d15e264bdc8c3fb17369bef0c6](https://www.tkltd.org//ontologies/37bf07d15e264bdc8c3fb17369bef0c6)" -> "[www.tkltd.org//ontologies/27f7c559482b45afa110eeba5518ff45](https://www.tkltd.org//ontologies/27f7c559482b45afa110eeba5518ff45)" [constraint=false, label=isInventoryOfItem, lp="623.75,143", pos="e,564.44,132.5 683.39,132.5 647.65,132.5 610.82,132.5 574.63,132.5"]; "[www.tkltd.org//ontologies/f99a8e3897434f4eb9ba375b05ad182b](https://www.tkltd.org//ontologies/f99a8e3897434f4eb9ba375b05ad182b)" [height=1.6389, label=< <table id="Inventory.Inventory.Location" BORDER="0" CELLBORDER="1" CELLSPACING="0" STYLE="ROUNDED"> <tr> <td colspan="5" bgcolor='grey'><font point-size='18' color='#ffffff'><B>Location</B></font></td> </tr> <tr> <td colspan="5" ALIGN="LEFT" BALIGN="LEFT">Facility/Building operated by the organisation</td> </tr> <tr><td><B>Attribute</B></td><td><B>Description</B></td><td ><B>Datatype</B></td><td ><B>Nulls</B></td><td ><B>PK</B></td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>loc_id</B></td><td ALIGN="LEFT" BALIGN="LEFT">Id field of the location.</td><td>integer</td><td></td><td >Yes</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>loc_name</B></td><td ALIGN="LEFT" BALIGN="LEFT">Name by which the location is known.</td><td>string</td><td></td><td >No</td></tr> </table>>, pos="1609,132.5", shape=plaintext, width=7.2083]; "[www.tkltd.org//ontologies/37bf07d15e264bdc8c3fb17369bef0c6](https://www.tkltd.org//ontologies/37bf07d15e264bdc8c3fb17369bef0c6)" -> "[www.tkltd.org//ontologies/f99a8e3897434f4eb9ba375b05ad182b](https://www.tkltd.org//ontologies/f99a8e3897434f4eb9ba375b05ad182b)" [constraint=false, label=isInventoryLocatedAt, lp="1281,143", pos="e,1349.5,132.5 1212.6,132.5 1254.3,132.5 1297.5,132.5 1339.4,132.5"]; "[www.tkltd.org//ontologies/25ac78e9ccdf4bbdbd0a144a31e0a79e](https://www.tkltd.org//ontologies/25ac78e9ccdf4bbdbd0a144a31e0a79e)" [height=1.6389, label=< <table id="Inventory.Inventory.Roles" BORDER="0" CELLBORDER="1" CELLSPACING="0" STYLE="ROUNDED"> <tr> <td colspan="5" bgcolor='grey'><font point-size='18' color='#ffffff'><B>Roles</B></font></td> </tr> <tr> <td colspan="5" ALIGN="LEFT" BALIGN="LEFT">Working Roles</td> </tr> <tr><td><B>Attribute</B></td><td><B>Description</B></td><td ><B>Datatype</B></td><td ><B>Nulls</B></td><td ><B>PK</B></td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>role_id</B></td><td ALIGN="LEFT" BALIGN="LEFT">Role Identifier.</td><td>integer</td><td></td><td >Yes</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>role_name</B></td><td ALIGN="LEFT" BALIGN="LEFT">Role Name.</td><td>string</td><td></td><td >No</td></tr> </table>>, pos="2807,132.5", shape=plaintext, width=5.0556]; "[www.tkltd.org//ontologies/e82395098d9b40f3b5c7c0d3458e887e](https://www.tkltd.org//ontologies/e82395098d9b40f3b5c7c0d3458e887e)" [height=2.5139, label=< <table id="Inventory.Inventory.Staff" BORDER="0" CELLBORDER="1" CELLSPACING="0" STYLE="ROUNDED"> <tr> <td colspan="5" bgcolor='grey'><font point-size='18' color='#ffffff'><B>Staff</B></font></td> </tr> <tr> <td colspan="5" ALIGN="LEFT" BALIGN="LEFT">Members of staff</td> </tr> <tr><td><B>Attribute</B></td><td><B>Description</B></td><td ><B>Datatype</B></td><td ><B>Nulls</B></td><td ><B>PK</B></td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>staff_id</B></td><td ALIGN="LEFT" BALIGN="LEFT">Id number of the staff member.</td><td>integer</td><td></td><td >Yes</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>forename</B></td><td ALIGN="LEFT" BALIGN="LEFT">Forename of the staff member.</td><td>string</td><td></td><td >No</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>loc_id</B></td><td ALIGN="LEFT" BALIGN="LEFT">Location base of this member of staff.</td><td>integer</td><td></td><td >No</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>role_id</B></td><td ALIGN="LEFT" BALIGN="LEFT">Assigned role to this member of staff</td><td>integer</td><td></td><td >No</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>surname</B></td><td ALIGN="LEFT" BALIGN="LEFT">Surname of the staff member.</td><td>string</td><td></td><td >No</td></tr> </table>>, pos="2243,132.5", shape=plaintext, width=7.2639]; "[www.tkltd.org//ontologies/e82395098d9b40f3b5c7c0d3458e887e](https://www.tkltd.org//ontologies/e82395098d9b40f3b5c7c0d3458e887e)" -> "[www.tkltd.org//ontologies/f99a8e3897434f4eb9ba375b05ad182b](https://www.tkltd.org//ontologies/f99a8e3897434f4eb9ba375b05ad182b)" [constraint=false, label=worksAtLocation, lp="1925,143", pos="e,1868.7,132.5 1981.4,132.5 1947.5,132.5 1912.8,132.5 1878.7,132.5"]; "[www.tkltd.org//ontologies/e82395098d9b40f3b5c7c0d3458e887e](https://www.tkltd.org//ontologies/e82395098d9b40f3b5c7c0d3458e887e)" -> "[www.tkltd.org//ontologies/25ac78e9ccdf4bbdbd0a144a31e0a79e](https://www.tkltd.org//ontologies/25ac78e9ccdf4bbdbd0a144a31e0a79e)" [constraint=false, label=isEmployedInRole, lp="2564.8,143", pos="e,2624.9,132.5 2504.8,132.5 2541.7,132.5 2579.1,132.5 2614.5,132.5"]; "[www.tkltd.org//ontologies/8cec6c4c8ebf4b6da9bd2557d44aeaea](https://www.tkltd.org//ontologies/8cec6c4c8ebf4b6da9bd2557d44aeaea)" [height=2.2222, label=< <table id="Inventory.Inventory.PriceHistory" BORDER="0" CELLBORDER="1" CELLSPACING="0" STYLE="ROUNDED"> <tr> <td colspan="5" bgcolor='grey'><font point-size='18' color='#ffffff'><B>PriceHistory</B></font></td> </tr> <tr> <td colspan="5" ALIGN="LEFT" BALIGN="LEFT">Prices for each product over time.</td> </tr> <tr><td><B>Attribute</B></td><td><B>Description</B></td><td ><B>Datatype</B></td><td ><B>Nulls</B></td><td ><B>PK</B></td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>p_id</B></td><td ALIGN="LEFT" BALIGN="LEFT">Product Id.</td><td>integer</td><td></td><td >Yes</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>start_date</B></td><td ALIGN="LEFT" BALIGN="LEFT">Date the price came into effect.</td><td>datetime</td><td></td><td >Yes</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>price</B></td><td ALIGN="LEFT" BALIGN="LEFT">Cash value associated with the product.</td><td>float</td><td></td><td >No</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>price_currency</B></td><td ALIGN="LEFT" BALIGN="LEFT">Currency code of the price.</td><td>string</td><td></td><td >No</td></tr> </table>>, pos="5488,132.5", shape=plaintext, width=7.9861]; "[www.tkltd.org//ontologies/0ca5aa25011b4d209bce931b35a9fe33](https://www.tkltd.org//ontologies/0ca5aa25011b4d209bce931b35a9fe33)" [height=3.0972, label=< <table id="Inventory.Inventory.OrderItem" BORDER="0" CELLBORDER="1" CELLSPACING="0" STYLE="ROUNDED"> <tr> <td colspan="5" bgcolor='grey'><font point-size='18' color='#ffffff'><B>OrderItem</B></font></td> </tr> <tr> <td colspan="5" ALIGN="LEFT" BALIGN="LEFT">A line item that exists on a quote or order</td> </tr> <tr><td><B>Attribute</B></td><td><B>Description</B></td><td ><B>Datatype</B></td><td ><B>Nulls</B></td><td ><B>PK</B></td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>order_item_id</B></td><td ALIGN="LEFT" BALIGN="LEFT">Unique Id for this order item</td><td>integer</td><td></td><td >Yes</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>qorder_id</B></td><td ALIGN="LEFT" BALIGN="LEFT">Identifier for the parent quote/order.</td><td>integer</td><td></td><td >Yes</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>discount</B></td><td ALIGN="LEFT" BALIGN="LEFT">Proportion of discount to be applied to base price</td><td>float</td><td></td><td >No</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>p_id</B></td><td ALIGN="LEFT" BALIGN="LEFT">Product Identifier.</td><td>integer</td><td></td><td >No</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>price_per_unit</B></td><td ALIGN="LEFT" BALIGN="LEFT">Base price per unit.</td><td>float</td><td></td><td >No</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>total_price</B></td><td ALIGN="LEFT" BALIGN="LEFT">Final total price for this line item after discounting</td><td>float</td><td></td><td >No</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>units</B></td><td ALIGN="LEFT" BALIGN="LEFT">Count of product units quoted/ordered.</td><td>integer</td><td></td><td >No</td></tr> </table>>, pos="4278,132.5", shape=plaintext, width=8.875]; "[www.tkltd.org//ontologies/0ca5aa25011b4d209bce931b35a9fe33](https://www.tkltd.org//ontologies/0ca5aa25011b4d209bce931b35a9fe33)" -> "[www.tkltd.org//ontologies/27f7c559482b45afa110eeba5518ff45](https://www.tkltd.org//ontologies/27f7c559482b45afa110eeba5518ff45)" [constraint=false, label=referencesProduct, lp="3892,290.5", pos="e,449.17,202.15 4040.9,244.03 4008,255.55 3974.1,265.43 3941,272 3898.3,280.49 3886.6,272.05 3843,272 3491,271.61 1022.3,322.36 \ 675,265 602.55,253.03 525.45,229.57 458.91,205.68"]; "[www.tkltd.org//ontologies/d35da2fdc8474d2eb99f73eb9f02f0f5](https://www.tkltd.org//ontologies/d35da2fdc8474d2eb99f73eb9f02f0f5)" [height=3.0139, label=< <table id="Inventory.Inventory.QOrder" BORDER="0" CELLBORDER="1" CELLSPACING="0" STYLE="ROUNDED"> <tr> <td colspan="5" bgcolor='grey'><font point-size='18' color='#ffffff'><B>QOrder</B></font></td> </tr> <tr> <td colspan="5" ALIGN="LEFT" BALIGN="LEFT">A normalised quote or order. FK link to Customer.</td> </tr> <tr><td><B>Attribute</B></td><td><B>Description</B></td><td ><B>Datatype</B></td><td ><B>Nulls</B></td><td ><B>PK</B></td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>qorder_id</B></td><td ALIGN="LEFT" BALIGN="LEFT">Unique Identifier for this qoute/order. Previously, customer<br/>was denormalised(?)</td><td>integer</td><td></td><td >Yes</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>customer_id</B></td><td ALIGN="LEFT" BALIGN="LEFT">Individual customer identifier.</td><td>integer</td><td></td><td >No</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>payment_status</B></td><td ALIGN="LEFT" BALIGN="LEFT">Indicator showing if the order has been paid.</td><td>boolean</td><td></td><td >No</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>quote_date</B></td><td ALIGN="LEFT" BALIGN="LEFT">Date used for calculating base prices.</td><td>datetime</td><td></td><td >No</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>quote_order_status</B></td><td ALIGN="LEFT" BALIGN="LEFT">Indicator showing if this record is an order or a quote.</td><td>string</td><td></td><td >No</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>sales_staff_id</B></td><td ALIGN="LEFT" BALIGN="LEFT">Who made the quote or order?</td><td>integer</td><td></td><td >No</td></tr> </table>>, pos="3379,132.5", shape=plaintext, width=10.319]; "[www.tkltd.org//ontologies/d35da2fdc8474d2eb99f73eb9f02f0f5](https://www.tkltd.org//ontologies/d35da2fdc8474d2eb99f73eb9f02f0f5)" -> "[www.tkltd.org//ontologies/e82395098d9b40f3b5c7c0d3458e887e](https://www.tkltd.org//ontologies/e82395098d9b40f3b5c7c0d3458e887e)" [constraint=false, label=soldBy, lp="2756,290.5", pos="e,2465.4,223.06 3097.3,241.03 3064.2,250.62 3030.6,258.96 2998,265 2831.1,295.91 2782.4,298.68 2616,265 2569.5,255.6 2521,241.64 \ 2474.9,226.26"]; "[www.tkltd.org//ontologies/d35da2fdc8474d2eb99f73eb9f02f0f5](https://www.tkltd.org//ontologies/d35da2fdc8474d2eb99f73eb9f02f0f5)" -> "[www.tkltd.org//ontologies/0ca5aa25011b4d209bce931b35a9fe33](https://www.tkltd.org//ontologies/0ca5aa25011b4d209bce931b35a9fe33)" [constraint=false, label=referencesLineItem, lp="3854.5,143", pos="e,3958.2,132.5 3750.8,132.5 3816.2,132.5 3883.8,132.5 3947.9,132.5"]; "[www.tkltd.org//ontologies/e8ec4d3d6c2f42ea9efea0509d98abc4](https://www.tkltd.org//ontologies/e8ec4d3d6c2f42ea9efea0509d98abc4)" [height=3.6806, label=< <table id="Inventory.Inventory.Customer" BORDER="0" CELLBORDER="1" CELLSPACING="0" STYLE="ROUNDED"> <tr> <td colspan="5" bgcolor='grey'><font point-size='18' color='#ffffff'><B>Customer</B></font></td> </tr> <tr> <td colspan="5" ALIGN="LEFT" BALIGN="LEFT">An individual who is involved in a quote or order. Subject to GDPR regulations.</td> </tr> <tr><td><B>Attribute</B></td><td><B>Description</B></td><td ><B>Datatype</B></td><td ><B>Nulls</B></td><td ><B>PK</B></td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>customer_id</B></td><td ALIGN="LEFT" BALIGN="LEFT">Individual customer identifier</td><td>integer</td><td></td><td >Yes</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>address_line_1</B></td><td ALIGN="LEFT" BALIGN="LEFT">First line of customer address.</td><td>string</td><td></td><td >No</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>address_line_2</B></td><td ALIGN="LEFT" BALIGN="LEFT">Second line of customer address.</td><td>string</td><td></td><td >No</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>address_line_3</B></td><td ALIGN="LEFT" BALIGN="LEFT">Third line of customer address.</td><td>string</td><td></td><td >No</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>forename</B></td><td ALIGN="LEFT" BALIGN="LEFT">Forename of customer.</td><td>string</td><td></td><td >No</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>phone_number</B></td><td ALIGN="LEFT" BALIGN="LEFT">Customer Phone Number.</td><td>string</td><td></td><td >No</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>postal_code</B></td><td ALIGN="LEFT" BALIGN="LEFT">Customer address post-code.</td><td>string</td><td></td><td >No</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>postal_town</B></td><td ALIGN="LEFT" BALIGN="LEFT">Customer address town.</td><td>string</td><td></td><td >No</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>surname</B></td><td ALIGN="LEFT" BALIGN="LEFT">Surname of customer.</td><td>string</td><td></td><td >No</td></tr> </table>>, pos="4899,132.5", shape=plaintext, width=7.8611]; "[www.tkltd.org//ontologies/d35da2fdc8474d2eb99f73eb9f02f0f5](https://www.tkltd.org//ontologies/d35da2fdc8474d2eb99f73eb9f02f0f5)" -> "[www.tkltd.org//ontologies/e8ec4d3d6c2f42ea9efea0509d98abc4](https://www.tkltd.org//ontologies/e8ec4d3d6c2f42ea9efea0509d98abc4)" [constraint=false, label=IsOrderedBy, lp="3803,290.5", pos="e,4616,262.92 3643.8,241.05 3684.8,253.86 3727.1,264.89 3768,272 3791.6,276.11 4386.7,308.62 4606.1,264.99"]; }
[/dot]
But, if I put the same code through dot, my layout all appears on the same line,
[dot engine=dot scale=“0.15” height=“200” width=“1200”]
digraph { graph [center=true, esep=0.1, mode=ipsep, overlap=ortho, rankdir=TB, sep=0.25, splines=True ]; node [fontname="DejaVu Sans", label="\N" ]; "[www.tkltd.org//ontologies/27f7c559482b45afa110eeba5518ff45](https://www.tkltd.org//ontologies/27f7c559482b45afa110eeba5518ff45)" [height=1.9306, label=< <table id="Inventory.Inventory.Product" BORDER="0" CELLBORDER="1" CELLSPACING="0" STYLE="ROUNDED"> <tr> <td colspan="5" bgcolor='grey'><font point-size='18' color='#ffffff'><B>Product</B></font></td> </tr> <tr> <td colspan="5" ALIGN="LEFT" BALIGN="LEFT">Individual products and their descriptions</td> </tr> <tr><td><B>Attribute</B></td><td><B>Description</B></td><td ><B>Datatype</B></td><td ><B>Nulls</B></td><td ><B>PK</B></td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>p_id</B></td><td ALIGN="LEFT" BALIGN="LEFT">Id field of the product by which it is coded</td><td>integer</td><td></td><td >Yes</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>description</B></td><td ALIGN="LEFT" BALIGN="LEFT">Description of the product.</td><td>string</td><td></td><td >No</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>p_name</B></td><td ALIGN="LEFT" BALIGN="LEFT">Unique name of the product.</td><td>string</td><td></td><td >No</td></tr> </table>>, pos="282,132.5", shape=plaintext, width=7.8333]; "[www.tkltd.org//ontologies/37bf07d15e264bdc8c3fb17369bef0c6](https://www.tkltd.org//ontologies/37bf07d15e264bdc8c3fb17369bef0c6)" [height=1.9306, label=< <table id="Inventory.Inventory.Inventory" BORDER="0" CELLBORDER="1" CELLSPACING="0" STYLE="ROUNDED"> <tr> <td colspan="5" bgcolor='grey'><font point-size='18' color='#ffffff'><B>Inventory</B></font></td> </tr> <tr> <td colspan="5" ALIGN="LEFT" BALIGN="LEFT">Inventory of products located at a location</td> </tr> <tr><td><B>Attribute</B></td><td><B>Description</B></td><td ><B>Datatype</B></td><td ><B>Nulls</B></td><td ><B>PK</B></td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>loc_id</B></td><td ALIGN="LEFT" BALIGN="LEFT">Identity of the location.</td><td>integer</td><td></td><td >Yes</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>p_id</B></td><td ALIGN="LEFT" BALIGN="LEFT">Identity of the product.</td><td>integer</td><td></td><td >Yes</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>p_loc_count</B></td><td ALIGN="LEFT" BALIGN="LEFT">Count of the product at this location.</td><td>integer</td><td></td><td >No</td></tr> </table>>, pos="948,132.5", shape=plaintext, width=7.3472]; "[www.tkltd.org//ontologies/37bf07d15e264bdc8c3fb17369bef0c6](https://www.tkltd.org//ontologies/37bf07d15e264bdc8c3fb17369bef0c6)" -> "[www.tkltd.org//ontologies/27f7c559482b45afa110eeba5518ff45](https://www.tkltd.org//ontologies/27f7c559482b45afa110eeba5518ff45)" [constraint=false, label=isInventoryOfItem, lp="623.75,143", pos="e,564.44,132.5 683.39,132.5 647.65,132.5 610.82,132.5 574.63,132.5"]; "[www.tkltd.org//ontologies/f99a8e3897434f4eb9ba375b05ad182b](https://www.tkltd.org//ontologies/f99a8e3897434f4eb9ba375b05ad182b)" [height=1.6389, label=< <table id="Inventory.Inventory.Location" BORDER="0" CELLBORDER="1" CELLSPACING="0" STYLE="ROUNDED"> <tr> <td colspan="5" bgcolor='grey'><font point-size='18' color='#ffffff'><B>Location</B></font></td> </tr> <tr> <td colspan="5" ALIGN="LEFT" BALIGN="LEFT">Facility/Building operated by the organisation</td> </tr> <tr><td><B>Attribute</B></td><td><B>Description</B></td><td ><B>Datatype</B></td><td ><B>Nulls</B></td><td ><B>PK</B></td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>loc_id</B></td><td ALIGN="LEFT" BALIGN="LEFT">Id field of the location.</td><td>integer</td><td></td><td >Yes</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>loc_name</B></td><td ALIGN="LEFT" BALIGN="LEFT">Name by which the location is known.</td><td>string</td><td></td><td >No</td></tr> </table>>, pos="1609,132.5", shape=plaintext, width=7.2083]; "[www.tkltd.org//ontologies/37bf07d15e264bdc8c3fb17369bef0c6](https://www.tkltd.org//ontologies/37bf07d15e264bdc8c3fb17369bef0c6)" -> "[www.tkltd.org//ontologies/f99a8e3897434f4eb9ba375b05ad182b](https://www.tkltd.org//ontologies/f99a8e3897434f4eb9ba375b05ad182b)" [constraint=false, label=isInventoryLocatedAt, lp="1281,143", pos="e,1349.5,132.5 1212.6,132.5 1254.3,132.5 1297.5,132.5 1339.4,132.5"]; "[www.tkltd.org//ontologies/25ac78e9ccdf4bbdbd0a144a31e0a79e](https://www.tkltd.org//ontologies/25ac78e9ccdf4bbdbd0a144a31e0a79e)" [height=1.6389, label=< <table id="Inventory.Inventory.Roles" BORDER="0" CELLBORDER="1" CELLSPACING="0" STYLE="ROUNDED"> <tr> <td colspan="5" bgcolor='grey'><font point-size='18' color='#ffffff'><B>Roles</B></font></td> </tr> <tr> <td colspan="5" ALIGN="LEFT" BALIGN="LEFT">Working Roles</td> </tr> <tr><td><B>Attribute</B></td><td><B>Description</B></td><td ><B>Datatype</B></td><td ><B>Nulls</B></td><td ><B>PK</B></td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>role_id</B></td><td ALIGN="LEFT" BALIGN="LEFT">Role Identifier.</td><td>integer</td><td></td><td >Yes</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>role_name</B></td><td ALIGN="LEFT" BALIGN="LEFT">Role Name.</td><td>string</td><td></td><td >No</td></tr> </table>>, pos="2807,132.5", shape=plaintext, width=5.0556]; "[www.tkltd.org//ontologies/e82395098d9b40f3b5c7c0d3458e887e](https://www.tkltd.org//ontologies/e82395098d9b40f3b5c7c0d3458e887e)" [height=2.5139, label=< <table id="Inventory.Inventory.Staff" BORDER="0" CELLBORDER="1" CELLSPACING="0" STYLE="ROUNDED"> <tr> <td colspan="5" bgcolor='grey'><font point-size='18' color='#ffffff'><B>Staff</B></font></td> </tr> <tr> <td colspan="5" ALIGN="LEFT" BALIGN="LEFT">Members of staff</td> </tr> <tr><td><B>Attribute</B></td><td><B>Description</B></td><td ><B>Datatype</B></td><td ><B>Nulls</B></td><td ><B>PK</B></td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>staff_id</B></td><td ALIGN="LEFT" BALIGN="LEFT">Id number of the staff member.</td><td>integer</td><td></td><td >Yes</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>forename</B></td><td ALIGN="LEFT" BALIGN="LEFT">Forename of the staff member.</td><td>string</td><td></td><td >No</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>loc_id</B></td><td ALIGN="LEFT" BALIGN="LEFT">Location base of this member of staff.</td><td>integer</td><td></td><td >No</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>role_id</B></td><td ALIGN="LEFT" BALIGN="LEFT">Assigned role to this member of staff</td><td>integer</td><td></td><td >No</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>surname</B></td><td ALIGN="LEFT" BALIGN="LEFT">Surname of the staff member.</td><td>string</td><td></td><td >No</td></tr> </table>>, pos="2243,132.5", shape=plaintext, width=7.2639]; "[www.tkltd.org//ontologies/e82395098d9b40f3b5c7c0d3458e887e](https://www.tkltd.org//ontologies/e82395098d9b40f3b5c7c0d3458e887e)" -> "[www.tkltd.org//ontologies/f99a8e3897434f4eb9ba375b05ad182b](https://www.tkltd.org//ontologies/f99a8e3897434f4eb9ba375b05ad182b)" [constraint=false, label=worksAtLocation, lp="1925,143", pos="e,1868.7,132.5 1981.4,132.5 1947.5,132.5 1912.8,132.5 1878.7,132.5"]; "[www.tkltd.org//ontologies/e82395098d9b40f3b5c7c0d3458e887e](https://www.tkltd.org//ontologies/e82395098d9b40f3b5c7c0d3458e887e)" -> "[www.tkltd.org//ontologies/25ac78e9ccdf4bbdbd0a144a31e0a79e](https://www.tkltd.org//ontologies/25ac78e9ccdf4bbdbd0a144a31e0a79e)" [constraint=false, label=isEmployedInRole, lp="2564.8,143", pos="e,2624.9,132.5 2504.8,132.5 2541.7,132.5 2579.1,132.5 2614.5,132.5"]; "[www.tkltd.org//ontologies/8cec6c4c8ebf4b6da9bd2557d44aeaea](https://www.tkltd.org//ontologies/8cec6c4c8ebf4b6da9bd2557d44aeaea)" [height=2.2222, label=< <table id="Inventory.Inventory.PriceHistory" BORDER="0" CELLBORDER="1" CELLSPACING="0" STYLE="ROUNDED"> <tr> <td colspan="5" bgcolor='grey'><font point-size='18' color='#ffffff'><B>PriceHistory</B></font></td> </tr> <tr> <td colspan="5" ALIGN="LEFT" BALIGN="LEFT">Prices for each product over time.</td> </tr> <tr><td><B>Attribute</B></td><td><B>Description</B></td><td ><B>Datatype</B></td><td ><B>Nulls</B></td><td ><B>PK</B></td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>p_id</B></td><td ALIGN="LEFT" BALIGN="LEFT">Product Id.</td><td>integer</td><td></td><td >Yes</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>start_date</B></td><td ALIGN="LEFT" BALIGN="LEFT">Date the price came into effect.</td><td>datetime</td><td></td><td >Yes</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>price</B></td><td ALIGN="LEFT" BALIGN="LEFT">Cash value associated with the product.</td><td>float</td><td></td><td >No</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>price_currency</B></td><td ALIGN="LEFT" BALIGN="LEFT">Currency code of the price.</td><td>string</td><td></td><td >No</td></tr> </table>>, pos="5488,132.5", shape=plaintext, width=7.9861]; "[www.tkltd.org//ontologies/0ca5aa25011b4d209bce931b35a9fe33](https://www.tkltd.org//ontologies/0ca5aa25011b4d209bce931b35a9fe33)" [height=3.0972, label=< <table id="Inventory.Inventory.OrderItem" BORDER="0" CELLBORDER="1" CELLSPACING="0" STYLE="ROUNDED"> <tr> <td colspan="5" bgcolor='grey'><font point-size='18' color='#ffffff'><B>OrderItem</B></font></td> </tr> <tr> <td colspan="5" ALIGN="LEFT" BALIGN="LEFT">A line item that exists on a quote or order</td> </tr> <tr><td><B>Attribute</B></td><td><B>Description</B></td><td ><B>Datatype</B></td><td ><B>Nulls</B></td><td ><B>PK</B></td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>order_item_id</B></td><td ALIGN="LEFT" BALIGN="LEFT">Unique Id for this order item</td><td>integer</td><td></td><td >Yes</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>qorder_id</B></td><td ALIGN="LEFT" BALIGN="LEFT">Identifier for the parent quote/order.</td><td>integer</td><td></td><td >Yes</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>discount</B></td><td ALIGN="LEFT" BALIGN="LEFT">Proportion of discount to be applied to base price</td><td>float</td><td></td><td >No</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>p_id</B></td><td ALIGN="LEFT" BALIGN="LEFT">Product Identifier.</td><td>integer</td><td></td><td >No</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>price_per_unit</B></td><td ALIGN="LEFT" BALIGN="LEFT">Base price per unit.</td><td>float</td><td></td><td >No</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>total_price</B></td><td ALIGN="LEFT" BALIGN="LEFT">Final total price for this line item after discounting</td><td>float</td><td></td><td >No</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>units</B></td><td ALIGN="LEFT" BALIGN="LEFT">Count of product units quoted/ordered.</td><td>integer</td><td></td><td >No</td></tr> </table>>, pos="4278,132.5", shape=plaintext, width=8.875]; "[www.tkltd.org//ontologies/0ca5aa25011b4d209bce931b35a9fe33](https://www.tkltd.org//ontologies/0ca5aa25011b4d209bce931b35a9fe33)" -> "[www.tkltd.org//ontologies/27f7c559482b45afa110eeba5518ff45](https://www.tkltd.org//ontologies/27f7c559482b45afa110eeba5518ff45)" [constraint=false, label=referencesProduct, lp="3892,290.5", pos="e,449.17,202.15 4040.9,244.03 4008,255.55 3974.1,265.43 3941,272 3898.3,280.49 3886.6,272.05 3843,272 3491,271.61 1022.3,322.36 \ 675,265 602.55,253.03 525.45,229.57 458.91,205.68"]; "[www.tkltd.org//ontologies/d35da2fdc8474d2eb99f73eb9f02f0f5](https://www.tkltd.org//ontologies/d35da2fdc8474d2eb99f73eb9f02f0f5)" [height=3.0139, label=< <table id="Inventory.Inventory.QOrder" BORDER="0" CELLBORDER="1" CELLSPACING="0" STYLE="ROUNDED"> <tr> <td colspan="5" bgcolor='grey'><font point-size='18' color='#ffffff'><B>QOrder</B></font></td> </tr> <tr> <td colspan="5" ALIGN="LEFT" BALIGN="LEFT">A normalised quote or order. FK link to Customer.</td> </tr> <tr><td><B>Attribute</B></td><td><B>Description</B></td><td ><B>Datatype</B></td><td ><B>Nulls</B></td><td ><B>PK</B></td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>qorder_id</B></td><td ALIGN="LEFT" BALIGN="LEFT">Unique Identifier for this qoute/order. Previously, customer<br/>was denormalised(?)</td><td>integer</td><td></td><td >Yes</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>customer_id</B></td><td ALIGN="LEFT" BALIGN="LEFT">Individual customer identifier.</td><td>integer</td><td></td><td >No</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>payment_status</B></td><td ALIGN="LEFT" BALIGN="LEFT">Indicator showing if the order has been paid.</td><td>boolean</td><td></td><td >No</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>quote_date</B></td><td ALIGN="LEFT" BALIGN="LEFT">Date used for calculating base prices.</td><td>datetime</td><td></td><td >No</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>quote_order_status</B></td><td ALIGN="LEFT" BALIGN="LEFT">Indicator showing if this record is an order or a quote.</td><td>string</td><td></td><td >No</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>sales_staff_id</B></td><td ALIGN="LEFT" BALIGN="LEFT">Who made the quote or order?</td><td>integer</td><td></td><td >No</td></tr> </table>>, pos="3379,132.5", shape=plaintext, width=10.319]; "[www.tkltd.org//ontologies/d35da2fdc8474d2eb99f73eb9f02f0f5](https://www.tkltd.org//ontologies/d35da2fdc8474d2eb99f73eb9f02f0f5)" -> "[www.tkltd.org//ontologies/e82395098d9b40f3b5c7c0d3458e887e](https://www.tkltd.org//ontologies/e82395098d9b40f3b5c7c0d3458e887e)" [constraint=false, label=soldBy, lp="2756,290.5", pos="e,2465.4,223.06 3097.3,241.03 3064.2,250.62 3030.6,258.96 2998,265 2831.1,295.91 2782.4,298.68 2616,265 2569.5,255.6 2521,241.64 \ 2474.9,226.26"]; "[www.tkltd.org//ontologies/d35da2fdc8474d2eb99f73eb9f02f0f5](https://www.tkltd.org//ontologies/d35da2fdc8474d2eb99f73eb9f02f0f5)" -> "[www.tkltd.org//ontologies/0ca5aa25011b4d209bce931b35a9fe33](https://www.tkltd.org//ontologies/0ca5aa25011b4d209bce931b35a9fe33)" [constraint=false, label=referencesLineItem, lp="3854.5,143", pos="e,3958.2,132.5 3750.8,132.5 3816.2,132.5 3883.8,132.5 3947.9,132.5"]; "[www.tkltd.org//ontologies/e8ec4d3d6c2f42ea9efea0509d98abc4](https://www.tkltd.org//ontologies/e8ec4d3d6c2f42ea9efea0509d98abc4)" [height=3.6806, label=< <table id="Inventory.Inventory.Customer" BORDER="0" CELLBORDER="1" CELLSPACING="0" STYLE="ROUNDED"> <tr> <td colspan="5" bgcolor='grey'><font point-size='18' color='#ffffff'><B>Customer</B></font></td> </tr> <tr> <td colspan="5" ALIGN="LEFT" BALIGN="LEFT">An individual who is involved in a quote or order. Subject to GDPR regulations.</td> </tr> <tr><td><B>Attribute</B></td><td><B>Description</B></td><td ><B>Datatype</B></td><td ><B>Nulls</B></td><td ><B>PK</B></td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>customer_id</B></td><td ALIGN="LEFT" BALIGN="LEFT">Individual customer identifier</td><td>integer</td><td></td><td >Yes</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>address_line_1</B></td><td ALIGN="LEFT" BALIGN="LEFT">First line of customer address.</td><td>string</td><td></td><td >No</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>address_line_2</B></td><td ALIGN="LEFT" BALIGN="LEFT">Second line of customer address.</td><td>string</td><td></td><td >No</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>address_line_3</B></td><td ALIGN="LEFT" BALIGN="LEFT">Third line of customer address.</td><td>string</td><td></td><td >No</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>forename</B></td><td ALIGN="LEFT" BALIGN="LEFT">Forename of customer.</td><td>string</td><td></td><td >No</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>phone_number</B></td><td ALIGN="LEFT" BALIGN="LEFT">Customer Phone Number.</td><td>string</td><td></td><td >No</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>postal_code</B></td><td ALIGN="LEFT" BALIGN="LEFT">Customer address post-code.</td><td>string</td><td></td><td >No</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>postal_town</B></td><td ALIGN="LEFT" BALIGN="LEFT">Customer address town.</td><td>string</td><td></td><td >No</td></tr> <tr><td ALIGN="LEFT" BALIGN="LEFT"><B>surname</B></td><td ALIGN="LEFT" BALIGN="LEFT">Surname of customer.</td><td>string</td><td></td><td >No</td></tr> </table>>, pos="4899,132.5", shape=plaintext, width=7.8611]; "[www.tkltd.org//ontologies/d35da2fdc8474d2eb99f73eb9f02f0f5](https://www.tkltd.org//ontologies/d35da2fdc8474d2eb99f73eb9f02f0f5)" -> "[www.tkltd.org//ontologies/e8ec4d3d6c2f42ea9efea0509d98abc4](https://www.tkltd.org//ontologies/e8ec4d3d6c2f42ea9efea0509d98abc4)" [constraint=false, label=IsOrderedBy, lp="3803,290.5", pos="e,4616,262.92 3643.8,241.05 3684.8,253.86 3727.1,264.89 3768,272 3791.6,276.11 4386.7,308.62 4606.1,264.99"]; }
[/dot]
What am I doing wrong here? Is dot html-table friendly, or should I expect to see a “flat” layout like this?
Perhaps I’m styling these incorrectly?
For reference, here’s the pre-formatted gv code:
digraph {
graph [bb="0,0,5775.5,423",
center=true,
esep=0.1,
mode=ipsep,
overlap=ortho,
rankdir=TB,
sep=0.25,
splines=True
];
node [fontname="DejaVu Sans",
label="\N"
];
"www.tkltd.org//ontologies/27f7c559482b45afa110eeba5518ff45" [height=1.9306,
label=< <table id="Inventory.Inventory.Product" BORDER="0" CELLBORDER="1" CELLSPACING="0" STYLE="ROUNDED">
<tr>
<td colspan="5" bgcolor='grey'><font point-size='18' color='#ffffff'><B>Product</B></font></td>
</tr>
<tr>
<td colspan="5" ALIGN="LEFT" BALIGN="LEFT">Individual products and their descriptions</td>
</tr>
<tr><td><B>Attribute</B></td><td><B>Description</B></td><td ><B>Datatype</B></td><td ><B>Nulls</B></td><td ><B>PK</B></td></tr>
<tr><td ALIGN="LEFT" BALIGN="LEFT"><B>p_id</B></td><td ALIGN="LEFT" BALIGN="LEFT">Id field of the product by which it is coded</td><td>integer</td><td></td><td >Yes</td></tr>
<tr><td ALIGN="LEFT" BALIGN="LEFT"><B>description</B></td><td ALIGN="LEFT" BALIGN="LEFT">Description of the product.</td><td>string</td><td></td><td >No</td></tr>
<tr><td ALIGN="LEFT" BALIGN="LEFT"><B>p_name</B></td><td ALIGN="LEFT" BALIGN="LEFT">Unique name of the product.</td><td>string</td><td></td><td >No</td></tr>
</table>>,
pos="282,132.5",
shape=plaintext,
width=7.8333];
"www.tkltd.org//ontologies/37bf07d15e264bdc8c3fb17369bef0c6" [height=1.9306,
label=< <table id="Inventory.Inventory.Inventory" BORDER="0" CELLBORDER="1" CELLSPACING="0" STYLE="ROUNDED">
<tr>
<td colspan="5" bgcolor='grey'><font point-size='18' color='#ffffff'><B>Inventory</B></font></td>
</tr>
<tr>
<td colspan="5" ALIGN="LEFT" BALIGN="LEFT">Inventory of products located at a location</td>
</tr>
<tr><td><B>Attribute</B></td><td><B>Description</B></td><td ><B>Datatype</B></td><td ><B>Nulls</B></td><td ><B>PK</B></td></tr>
<tr><td ALIGN="LEFT" BALIGN="LEFT"><B>loc_id</B></td><td ALIGN="LEFT" BALIGN="LEFT">Identity of the location.</td><td>integer</td><td></td><td >Yes</td></tr>
<tr><td ALIGN="LEFT" BALIGN="LEFT"><B>p_id</B></td><td ALIGN="LEFT" BALIGN="LEFT">Identity of the product.</td><td>integer</td><td></td><td >Yes</td></tr>
<tr><td ALIGN="LEFT" BALIGN="LEFT"><B>p_loc_count</B></td><td ALIGN="LEFT" BALIGN="LEFT">Count of the product at this location.</td><td>integer</td><td></td><td >No</td></tr>
</table>>,
pos="948,132.5",
shape=plaintext,
width=7.3472];
"www.tkltd.org//ontologies/37bf07d15e264bdc8c3fb17369bef0c6" -> "www.tkltd.org//ontologies/27f7c559482b45afa110eeba5518ff45" [constraint=false,
label=isInventoryOfItem,
lp="623.75,143",
pos="e,564.44,132.5 683.39,132.5 647.65,132.5 610.82,132.5 574.63,132.5"];
"www.tkltd.org//ontologies/f99a8e3897434f4eb9ba375b05ad182b" [height=1.6389,
label=< <table id="Inventory.Inventory.Location" BORDER="0" CELLBORDER="1" CELLSPACING="0" STYLE="ROUNDED">
<tr>
<td colspan="5" bgcolor='grey'><font point-size='18' color='#ffffff'><B>Location</B></font></td>
</tr>
<tr>
<td colspan="5" ALIGN="LEFT" BALIGN="LEFT">Facility/Building operated by the organisation</td>
</tr>
<tr><td><B>Attribute</B></td><td><B>Description</B></td><td ><B>Datatype</B></td><td ><B>Nulls</B></td><td ><B>PK</B></td></tr>
<tr><td ALIGN="LEFT" BALIGN="LEFT"><B>loc_id</B></td><td ALIGN="LEFT" BALIGN="LEFT">Id field of the location.</td><td>integer</td><td></td><td >Yes</td></tr>
<tr><td ALIGN="LEFT" BALIGN="LEFT"><B>loc_name</B></td><td ALIGN="LEFT" BALIGN="LEFT">Name by which the location is known.</td><td>string</td><td></td><td >No</td></tr>
</table>>,
pos="1609,132.5",
shape=plaintext,
width=7.2083];
"www.tkltd.org//ontologies/37bf07d15e264bdc8c3fb17369bef0c6" -> "www.tkltd.org//ontologies/f99a8e3897434f4eb9ba375b05ad182b" [constraint=false,
label=isInventoryLocatedAt,
lp="1281,143",
pos="e,1349.5,132.5 1212.6,132.5 1254.3,132.5 1297.5,132.5 1339.4,132.5"];
"www.tkltd.org//ontologies/25ac78e9ccdf4bbdbd0a144a31e0a79e" [height=1.6389,
label=< <table id="Inventory.Inventory.Roles" BORDER="0" CELLBORDER="1" CELLSPACING="0" STYLE="ROUNDED">
<tr>
<td colspan="5" bgcolor='grey'><font point-size='18' color='#ffffff'><B>Roles</B></font></td>
</tr>
<tr>
<td colspan="5" ALIGN="LEFT" BALIGN="LEFT">Working Roles</td>
</tr>
<tr><td><B>Attribute</B></td><td><B>Description</B></td><td ><B>Datatype</B></td><td ><B>Nulls</B></td><td ><B>PK</B></td></tr>
<tr><td ALIGN="LEFT" BALIGN="LEFT"><B>role_id</B></td><td ALIGN="LEFT" BALIGN="LEFT">Role Identifier.</td><td>integer</td><td></td><td >Yes</td></tr>
<tr><td ALIGN="LEFT" BALIGN="LEFT"><B>role_name</B></td><td ALIGN="LEFT" BALIGN="LEFT">Role Name.</td><td>string</td><td></td><td >No</td></tr>
</table>>,
pos="2807,132.5",
shape=plaintext,
width=5.0556];
"www.tkltd.org//ontologies/e82395098d9b40f3b5c7c0d3458e887e" [height=2.5139,
label=< <table id="Inventory.Inventory.Staff" BORDER="0" CELLBORDER="1" CELLSPACING="0" STYLE="ROUNDED">
<tr>
<td colspan="5" bgcolor='grey'><font point-size='18' color='#ffffff'><B>Staff</B></font></td>
</tr>
<tr>
<td colspan="5" ALIGN="LEFT" BALIGN="LEFT">Members of staff</td>
</tr>
<tr><td><B>Attribute</B></td><td><B>Description</B></td><td ><B>Datatype</B></td><td ><B>Nulls</B></td><td ><B>PK</B></td></tr>
<tr><td ALIGN="LEFT" BALIGN="LEFT"><B>staff_id</B></td><td ALIGN="LEFT" BALIGN="LEFT">Id number of the staff member.</td><td>integer</td><td></td><td >Yes</td></tr>
<tr><td ALIGN="LEFT" BALIGN="LEFT"><B>forename</B></td><td ALIGN="LEFT" BALIGN="LEFT">Forename of the staff member.</td><td>string</td><td></td><td >No</td></tr>
<tr><td ALIGN="LEFT" BALIGN="LEFT"><B>loc_id</B></td><td ALIGN="LEFT" BALIGN="LEFT">Location base of this member of staff.</td><td>integer</td><td></td><td >No</td></tr>
<tr><td ALIGN="LEFT" BALIGN="LEFT"><B>role_id</B></td><td ALIGN="LEFT" BALIGN="LEFT">Assigned role to this member of staff</td><td>integer</td><td></td><td >No</td></tr>
<tr><td ALIGN="LEFT" BALIGN="LEFT"><B>surname</B></td><td ALIGN="LEFT" BALIGN="LEFT">Surname of the staff member.</td><td>string</td><td></td><td >No</td></tr>
</table>>,
pos="2243,132.5",
shape=plaintext,
width=7.2639];
"www.tkltd.org//ontologies/e82395098d9b40f3b5c7c0d3458e887e" -> "www.tkltd.org//ontologies/f99a8e3897434f4eb9ba375b05ad182b" [constraint=false,
label=worksAtLocation,
lp="1925,143",
pos="e,1868.7,132.5 1981.4,132.5 1947.5,132.5 1912.8,132.5 1878.7,132.5"];
"www.tkltd.org//ontologies/e82395098d9b40f3b5c7c0d3458e887e" -> "www.tkltd.org//ontologies/25ac78e9ccdf4bbdbd0a144a31e0a79e" [constraint=false,
label=isEmployedInRole,
lp="2564.8,143",
pos="e,2624.9,132.5 2504.8,132.5 2541.7,132.5 2579.1,132.5 2614.5,132.5"];
"www.tkltd.org//ontologies/8cec6c4c8ebf4b6da9bd2557d44aeaea" [height=2.2222,
label=< <table id="Inventory.Inventory.PriceHistory" BORDER="0" CELLBORDER="1" CELLSPACING="0" STYLE="ROUNDED">
<tr>
<td colspan="5" bgcolor='grey'><font point-size='18' color='#ffffff'><B>PriceHistory</B></font></td>
</tr>
<tr>
<td colspan="5" ALIGN="LEFT" BALIGN="LEFT">Prices for each product over time.</td>
</tr>
<tr><td><B>Attribute</B></td><td><B>Description</B></td><td ><B>Datatype</B></td><td ><B>Nulls</B></td><td ><B>PK</B></td></tr>
<tr><td ALIGN="LEFT" BALIGN="LEFT"><B>p_id</B></td><td ALIGN="LEFT" BALIGN="LEFT">Product Id.</td><td>integer</td><td></td><td >Yes</td></tr>
<tr><td ALIGN="LEFT" BALIGN="LEFT"><B>start_date</B></td><td ALIGN="LEFT" BALIGN="LEFT">Date the price came into effect.</td><td>datetime</td><td></td><td >Yes</td></tr>
<tr><td ALIGN="LEFT" BALIGN="LEFT"><B>price</B></td><td ALIGN="LEFT" BALIGN="LEFT">Cash value associated with the product.</td><td>float</td><td></td><td >No</td></tr>
<tr><td ALIGN="LEFT" BALIGN="LEFT"><B>price_currency</B></td><td ALIGN="LEFT" BALIGN="LEFT">Currency code of the price.</td><td>string</td><td></td><td >No</td></tr>
</table>>,
pos="5488,132.5",
shape=plaintext,
width=7.9861];
"www.tkltd.org//ontologies/0ca5aa25011b4d209bce931b35a9fe33" [height=3.0972,
label=< <table id="Inventory.Inventory.OrderItem" BORDER="0" CELLBORDER="1" CELLSPACING="0" STYLE="ROUNDED">
<tr>
<td colspan="5" bgcolor='grey'><font point-size='18' color='#ffffff'><B>OrderItem</B></font></td>
</tr>
<tr>
<td colspan="5" ALIGN="LEFT" BALIGN="LEFT">A line item that exists on a quote or order</td>
</tr>
<tr><td><B>Attribute</B></td><td><B>Description</B></td><td ><B>Datatype</B></td><td ><B>Nulls</B></td><td ><B>PK</B></td></tr>
<tr><td ALIGN="LEFT" BALIGN="LEFT"><B>order_item_id</B></td><td ALIGN="LEFT" BALIGN="LEFT">Unique Id for this order item</td><td>integer</td><td></td><td >Yes</td></tr>
<tr><td ALIGN="LEFT" BALIGN="LEFT"><B>qorder_id</B></td><td ALIGN="LEFT" BALIGN="LEFT">Identifier for the parent quote/order.</td><td>integer</td><td></td><td >Yes</td></tr>
<tr><td ALIGN="LEFT" BALIGN="LEFT"><B>discount</B></td><td ALIGN="LEFT" BALIGN="LEFT">Proportion of discount to be applied to base price</td><td>float</td><td></td><td >No</td></tr>
<tr><td ALIGN="LEFT" BALIGN="LEFT"><B>p_id</B></td><td ALIGN="LEFT" BALIGN="LEFT">Product Identifier.</td><td>integer</td><td></td><td >No</td></tr>
<tr><td ALIGN="LEFT" BALIGN="LEFT"><B>price_per_unit</B></td><td ALIGN="LEFT" BALIGN="LEFT">Base price per unit.</td><td>float</td><td></td><td >No</td></tr>
<tr><td ALIGN="LEFT" BALIGN="LEFT"><B>total_price</B></td><td ALIGN="LEFT" BALIGN="LEFT">Final total price for this line item after discounting</td><td>float</td><td></td><td >No</td></tr>
<tr><td ALIGN="LEFT" BALIGN="LEFT"><B>units</B></td><td ALIGN="LEFT" BALIGN="LEFT">Count of product units quoted/ordered.</td><td>integer</td><td></td><td >No</td></tr>
</table>>,
pos="4278,132.5",
shape=plaintext,
width=8.875];
"www.tkltd.org//ontologies/0ca5aa25011b4d209bce931b35a9fe33" -> "www.tkltd.org//ontologies/27f7c559482b45afa110eeba5518ff45" [constraint=false,
label=referencesProduct,
lp="3892,290.5",
pos="e,449.17,202.15 4040.9,244.03 4008,255.55 3974.1,265.43 3941,272 3898.3,280.49 3886.6,272.05 3843,272 3491,271.61 1022.3,322.36 \
675,265 602.55,253.03 525.45,229.57 458.91,205.68"];
"www.tkltd.org//ontologies/d35da2fdc8474d2eb99f73eb9f02f0f5" [height=3.0139,
label=< <table id="Inventory.Inventory.QOrder" BORDER="0" CELLBORDER="1" CELLSPACING="0" STYLE="ROUNDED">
<tr>
<td colspan="5" bgcolor='grey'><font point-size='18' color='#ffffff'><B>QOrder</B></font></td>
</tr>
<tr>
<td colspan="5" ALIGN="LEFT" BALIGN="LEFT">A normalised quote or order. FK link to Customer.</td>
</tr>
<tr><td><B>Attribute</B></td><td><B>Description</B></td><td ><B>Datatype</B></td><td ><B>Nulls</B></td><td ><B>PK</B></td></tr>
<tr><td ALIGN="LEFT" BALIGN="LEFT"><B>qorder_id</B></td><td ALIGN="LEFT" BALIGN="LEFT">Unique Identifier for this qoute/order. Previously, customer<br/>was denormalised(?)</td><td>integer</td><td></td><td >Yes</td></tr>
<tr><td ALIGN="LEFT" BALIGN="LEFT"><B>customer_id</B></td><td ALIGN="LEFT" BALIGN="LEFT">Individual customer identifier.</td><td>integer</td><td></td><td >No</td></tr>
<tr><td ALIGN="LEFT" BALIGN="LEFT"><B>payment_status</B></td><td ALIGN="LEFT" BALIGN="LEFT">Indicator showing if the order has been paid.</td><td>boolean</td><td></td><td >No</td></tr>
<tr><td ALIGN="LEFT" BALIGN="LEFT"><B>quote_date</B></td><td ALIGN="LEFT" BALIGN="LEFT">Date used for calculating base prices.</td><td>datetime</td><td></td><td >No</td></tr>
<tr><td ALIGN="LEFT" BALIGN="LEFT"><B>quote_order_status</B></td><td ALIGN="LEFT" BALIGN="LEFT">Indicator showing if this record is an order or a quote.</td><td>string</td><td></td><td >No</td></tr>
<tr><td ALIGN="LEFT" BALIGN="LEFT"><B>sales_staff_id</B></td><td ALIGN="LEFT" BALIGN="LEFT">Who made the quote or order?</td><td>integer</td><td></td><td >No</td></tr>
</table>>,
pos="3379,132.5",
shape=plaintext,
width=10.319];
"www.tkltd.org//ontologies/d35da2fdc8474d2eb99f73eb9f02f0f5" -> "www.tkltd.org//ontologies/e82395098d9b40f3b5c7c0d3458e887e" [constraint=false,
label=soldBy,
lp="2756,290.5",
pos="e,2465.4,223.06 3097.3,241.03 3064.2,250.62 3030.6,258.96 2998,265 2831.1,295.91 2782.4,298.68 2616,265 2569.5,255.6 2521,241.64 \
2474.9,226.26"];
"www.tkltd.org//ontologies/d35da2fdc8474d2eb99f73eb9f02f0f5" -> "www.tkltd.org//ontologies/0ca5aa25011b4d209bce931b35a9fe33" [constraint=false,
label=referencesLineItem,
lp="3854.5,143",
pos="e,3958.2,132.5 3750.8,132.5 3816.2,132.5 3883.8,132.5 3947.9,132.5"];
"www.tkltd.org//ontologies/e8ec4d3d6c2f42ea9efea0509d98abc4" [height=3.6806,
label=< <table id="Inventory.Inventory.Customer" BORDER="0" CELLBORDER="1" CELLSPACING="0" STYLE="ROUNDED">
<tr>
<td colspan="5" bgcolor='grey'><font point-size='18' color='#ffffff'><B>Customer</B></font></td>
</tr>
<tr>
<td colspan="5" ALIGN="LEFT" BALIGN="LEFT">An individual who is involved in a quote or order. Subject to GDPR regulations.</td>
</tr>
<tr><td><B>Attribute</B></td><td><B>Description</B></td><td ><B>Datatype</B></td><td ><B>Nulls</B></td><td ><B>PK</B></td></tr>
<tr><td ALIGN="LEFT" BALIGN="LEFT"><B>customer_id</B></td><td ALIGN="LEFT" BALIGN="LEFT">Individual customer identifier</td><td>integer</td><td></td><td >Yes</td></tr>
<tr><td ALIGN="LEFT" BALIGN="LEFT"><B>address_line_1</B></td><td ALIGN="LEFT" BALIGN="LEFT">First line of customer address.</td><td>string</td><td></td><td >No</td></tr>
<tr><td ALIGN="LEFT" BALIGN="LEFT"><B>address_line_2</B></td><td ALIGN="LEFT" BALIGN="LEFT">Second line of customer address.</td><td>string</td><td></td><td >No</td></tr>
<tr><td ALIGN="LEFT" BALIGN="LEFT"><B>address_line_3</B></td><td ALIGN="LEFT" BALIGN="LEFT">Third line of customer address.</td><td>string</td><td></td><td >No</td></tr>
<tr><td ALIGN="LEFT" BALIGN="LEFT"><B>forename</B></td><td ALIGN="LEFT" BALIGN="LEFT">Forename of customer.</td><td>string</td><td></td><td >No</td></tr>
<tr><td ALIGN="LEFT" BALIGN="LEFT"><B>phone_number</B></td><td ALIGN="LEFT" BALIGN="LEFT">Customer Phone Number.</td><td>string</td><td></td><td >No</td></tr>
<tr><td ALIGN="LEFT" BALIGN="LEFT"><B>postal_code</B></td><td ALIGN="LEFT" BALIGN="LEFT">Customer address post-code.</td><td>string</td><td></td><td >No</td></tr>
<tr><td ALIGN="LEFT" BALIGN="LEFT"><B>postal_town</B></td><td ALIGN="LEFT" BALIGN="LEFT">Customer address town.</td><td>string</td><td></td><td >No</td></tr>
<tr><td ALIGN="LEFT" BALIGN="LEFT"><B>surname</B></td><td ALIGN="LEFT" BALIGN="LEFT">Surname of customer.</td><td>string</td><td></td><td >No</td></tr>
</table>>,
pos="4899,132.5",
shape=plaintext,
width=7.8611];
"www.tkltd.org//ontologies/d35da2fdc8474d2eb99f73eb9f02f0f5" -> "www.tkltd.org//ontologies/e8ec4d3d6c2f42ea9efea0509d98abc4" [constraint=false,
label=IsOrderedBy,
lp="3803,290.5",
pos="e,4616,262.92 3643.8,241.05 3684.8,253.86 3727.1,264.89 3768,272 3791.6,276.11 4386.7,308.62 4606.1,264.99"];
}