# Items database object and table schema The base schema of the item objects are data and link object, which have both a type. This way you could model the description "Chassis contains Mainboard" or "Service runs on Server". .Object schema concept [plantuml, format=svg] ---- @startuml left to right direction scale 200 width header Concept title General object and link object data1 object data2 object link1 data1 : id: "uuid" data1 : type: "data type" data1 : data: "json" data2 : id: "uuid" data2 : type: "data type" data2 : data: "json" link1 : id: "uuid" link1 : type: "link type" link1 : from: "data.id" link1 : to: "data.id" data1::id <- link1::from link1::to -> data2::id @enduml ---- .Object schema example [plantuml, format=svg] ---- @startuml left to right direction scale 400 width header Example title Chassis contains Mainboard object data3 object data4 object link2 data3 : id: "afd61751-dbee-4010-91dc-1263155d6a56" data3 : type: "Chassis" data3 : data: "{\n"serial": "12345678"\n}" data4 : id: "96dcf778-0875-437f-adc0-03545f9f06be" data4 : type: "Mainboard" data4 : data: "{\n "serial": "ABCDEFGHI"\n}" link2 : id: "f4402dbb-05db-4903-a378-5bff14cf91ca" link2 : type: "contains" link2 : from: "afd61751-dbee-4010-91dc-1263155d6a56" link2 : to: "96dcf778-0875-437f-adc0-03545f9f06be" data3::id <- link2::from link2::to -> data4::id @enduml ---- .Table schema [plantuml, format=svg] ---- @startuml left to right direction ' scale 350 width ' skinparam linetype ortho entity link_schema #eee8d5 { * id: "uuid" -- * type: "a|b|c" } entity link #fdf6e3 { * id: "uuid" -- * type: "schema_link" * from: "data.id uuid" * to: "data.id uuid" } note right of link_schema #add1b2 link_schema has only an 'object_type' end note entity data_schema #eee8d5 { * id: "uuid" -- * type: "x|y|z" * schema: "json" } entity data #fdf6e3 { * id: "uuid" -- * type: "data_schema" * data: "data_schema.schema json" } link::from -> data::id #A9DCDF link::to -> data::id #A9DCDF link_schema::type -> link::type data_schema::type -> data::type data_schema::schema -> data::data @enduml ----