@startuml
left to right direction
'top to bottom direction
hide circle
'avoide "." issues:
set namespaceSeparator none


skinparam class {
  BackgroundColor White
  BackgroundColor<<FN>> Yellow
  BackgroundColor<<FS>> Yellow
  BackgroundColor<<FT>> LightGray
  BackgroundColor<<IF>> Yellow
  BackgroundColor<<IS>> Yellow
  BackgroundColor<<P>> Aqua
  BackgroundColor<<PC>> Aqua
  BackgroundColor<<SN>> Yellow
  BackgroundColor<<SO>> SlateBlue
  BackgroundColor<<TF>> LightGray
  BackgroundColor<<TR>> Tomato
  BackgroundColor<<U>> White
  BackgroundColor<<V>> WhiteSmoke
  BackgroundColor<<X>> Aqua
  BackgroundColor<<external>> AliceBlue
}


entity "puml-link:dhw:sqldb:repo.ForeignKey_Indexes.adoc[]" as repo.ForeignKey_Indexes << V >> {
  --
  delete_referential_action : (tinyint)
  ForeignKey_fullname : (nvarchar(261))
  ForeignKey_guid : (uniqueidentifier)
  ForeignKey_name : (sysname)
  - is_MatchingDatatypePattern : (int)
  referenced_index_guid : (uniqueidentifier)
  referenced_index_name : (nvarchar(450))
  referenced_IndexPatternColumnDatatype : (nvarchar(4000))
  referenced_IndexPatternColumnName : (nvarchar(4000))
  referenced_RepoObject_fullname : (nvarchar(261))
  referenced_RepoObject_fullname2 : (nvarchar(257))
  referenced_RepoObject_guid : (uniqueidentifier)
  referenced_SysObject_name : (nvarchar(128))
  referenced_SysObject_schema_name : (nvarchar(128))
  referencing_index_guid : (uniqueidentifier)
  referencing_index_name : (nvarchar(450))
  referencing_IndexPatternColumnDatatype : (nvarchar(4000))
  referencing_IndexPatternColumnName : (nvarchar(4000))
  referencing_RepoObject_fullname : (nvarchar(261))
  referencing_RepoObject_fullname2 : (nvarchar(257))
  referencing_RepoObject_guid : (uniqueidentifier)
  referencing_SysObject_name : (nvarchar(128))
  referencing_SysObject_schema_name : (nvarchar(128))
  update_referential_action : (tinyint)
  --
  --
}

entity "puml-link:dhw:sqldb:repo.ForeignKey_Indexes_union.adoc[]" as repo.ForeignKey_Indexes_union << V >> {
  **ForeignKey_guid** : (uniqueidentifier)
  --
  delete_referential_action : (tinyint)
  ForeignKey_fullname : (nvarchar(517))
  ForeignKey_name : (nvarchar(263))
  - is_MatchingDatatypePattern : (int)
  referenced_index_guid : (uniqueidentifier)
  referenced_index_name : (nvarchar(450))
  referenced_IndexPatternColumnDatatype : (nvarchar(4000))
  referenced_IndexPatternColumnName : (nvarchar(4000))
  referenced_RepoObject_fullname : (nvarchar(517))
  referenced_RepoObject_fullname2 : (nvarchar(257))
  referenced_RepoObject_guid : (uniqueidentifier)
  referenced_SysObject_name : (nvarchar(128))
  referenced_SysObject_schema_name : (nvarchar(128))
  referencing_index_guid : (uniqueidentifier)
  referencing_index_name : (nvarchar(450))
  referencing_IndexPatternColumnDatatype : (nvarchar(4000))
  referencing_IndexPatternColumnName : (nvarchar(4000))
  referencing_RepoObject_fullname : (nvarchar(517))
  referencing_RepoObject_fullname2 : (nvarchar(257))
  referencing_RepoObject_guid : (uniqueidentifier)
  referencing_SysObject_name : (nvarchar(128))
  referencing_SysObject_schema_name : (nvarchar(128))
  update_referential_action : (tinyint)
  --
  --
}

entity "puml-link:dhw:sqldb:repo.ForeignKey_Indexes_union_T.adoc[]" as repo.ForeignKey_Indexes_union_T << U >> {
  **ForeignKey_guid** : (uniqueidentifier)
  --
  delete_referential_action : (tinyint)
  ForeignKey_fullname : (nvarchar(517))
  ForeignKey_name : (nvarchar(263))
  - is_MatchingDatatypePattern : (int)
  referenced_index_guid : (uniqueidentifier)
  referenced_index_name : (nvarchar(450))
  referenced_IndexPatternColumnDatatype : (nvarchar(4000))
  referenced_IndexPatternColumnName : (nvarchar(4000))
  referenced_RepoObject_fullname : (nvarchar(517))
  referenced_RepoObject_fullname2 : (nvarchar(257))
  referenced_RepoObject_guid : (uniqueidentifier)
  referenced_SysObject_name : (nvarchar(128))
  referenced_SysObject_schema_name : (nvarchar(128))
  referencing_index_guid : (uniqueidentifier)
  referencing_index_name : (nvarchar(450))
  referencing_IndexPatternColumnDatatype : (nvarchar(4000))
  referencing_IndexPatternColumnName : (nvarchar(4000))
  referencing_RepoObject_fullname : (nvarchar(517))
  referencing_RepoObject_fullname2 : (nvarchar(257))
  referencing_RepoObject_guid : (uniqueidentifier)
  referencing_SysObject_name : (nvarchar(128))
  referencing_SysObject_schema_name : (nvarchar(128))
  update_referential_action : (tinyint)
  --
  --
}

entity "puml-link:dhw:sqldb:repo.ForeignKey_ssas_Indexes.adoc[]" as repo.ForeignKey_ssas_Indexes << V >> {
  --
  delete_referential_action : (tinyint)
  ForeignKey_fullname : (nvarchar(517))
  - ForeignKey_guid : (uniqueidentifier)
  ForeignKey_name : (nvarchar(263))
  - is_MatchingDatatypePattern : (int)
  referenced_index_guid : (uniqueidentifier)
  referenced_index_name : (nvarchar(450))
  referenced_IndexPatternColumnDatatype : (nvarchar(500))
  referenced_IndexPatternColumnName : (nvarchar(128))
  referenced_RepoObject_fullname : (nvarchar(517))
  referenced_RepoObject_fullname2 : (nvarchar(257))
  referenced_RepoObject_guid : (uniqueidentifier)
  referenced_SysObject_name : (nvarchar(128))
  - referenced_SysObject_schema_name : (nvarchar(128))
  referencing_index_guid : (uniqueidentifier)
  referencing_index_name : (nvarchar(450))
  referencing_IndexPatternColumnDatatype : (nvarchar(500))
  referencing_IndexPatternColumnName : (nvarchar(128))
  referencing_RepoObject_fullname : (nvarchar(517))
  referencing_RepoObject_fullname2 : (nvarchar(257))
  referencing_RepoObject_guid : (uniqueidentifier)
  referencing_SysObject_name : (nvarchar(128))
  - referencing_SysObject_schema_name : (nvarchar(128))
  update_referential_action : (tinyint)
  --
  --
}

entity "puml-link:dhw:sqldb:repo.ForeignKey_virtual_Indexes.adoc[]" as repo.ForeignKey_virtual_Indexes << V >> {
  --
  - delete_referential_action : (tinyint)
  - ForeignKey_fullname : (nvarchar(517))
  - ForeignKey_guid : (uniqueidentifier)
  ForeignKey_name : (nvarchar(128))
  - is_MatchingDatatypePattern : (int)
  referenced_index_guid : (uniqueidentifier)
  referenced_index_name : (nvarchar(450))
  referenced_IndexPatternColumnDatatype : (nvarchar(4000))
  referenced_IndexPatternColumnName : (nvarchar(4000))
  referenced_RepoObject_fullname : (nvarchar(261))
  referenced_RepoObject_fullname2 : (nvarchar(257))
  referenced_RepoObject_guid : (uniqueidentifier)
  referenced_SysObject_name : (nvarchar(128))
  referenced_SysObject_schema_name : (nvarchar(128))
  referencing_index_guid : (uniqueidentifier)
  referencing_index_name : (nvarchar(450))
  referencing_IndexPatternColumnDatatype : (nvarchar(4000))
  referencing_IndexPatternColumnName : (nvarchar(4000))
  referencing_RepoObject_fullname : (nvarchar(261))
  referencing_RepoObject_fullname2 : (nvarchar(257))
  referencing_RepoObject_guid : (uniqueidentifier)
  referencing_SysObject_name : (nvarchar(128))
  referencing_SysObject_schema_name : (nvarchar(128))
  - update_referential_action : (tinyint)
  --
  --
}

entity "puml-link:dhw:sqldb:repo.usp_PERSIST_ForeignKey_Indexes_union_T.adoc[]" as repo.usp_PERSIST_ForeignKey_Indexes_union_T << P >> {
  --
  --
  --
}

repo.ForeignKey_Indexes <.. repo.ForeignKey_Indexes_union
repo.ForeignKey_Indexes_union <.. repo.ForeignKey_Indexes_union_T
repo.ForeignKey_Indexes_union <.. repo.usp_PERSIST_ForeignKey_Indexes_union_T
repo.ForeignKey_ssas_Indexes <.. repo.ForeignKey_Indexes_union
repo.ForeignKey_virtual_Indexes <.. repo.ForeignKey_Indexes_union
"repo.ForeignKey_Indexes_union::delete_referential_action" <-- "repo.ForeignKey_Indexes_union_T::delete_referential_action"
"repo.ForeignKey_Indexes_union::ForeignKey_fullname" <-- "repo.ForeignKey_Indexes_union_T::ForeignKey_fullname"
"repo.ForeignKey_Indexes_union::ForeignKey_guid" <-- "repo.ForeignKey_Indexes_union_T::ForeignKey_guid"
"repo.ForeignKey_Indexes_union::ForeignKey_name" <-- "repo.ForeignKey_Indexes_union_T::ForeignKey_name"
"repo.ForeignKey_Indexes_union::is_MatchingDatatypePattern" <-- "repo.ForeignKey_Indexes_union_T::is_MatchingDatatypePattern"
"repo.ForeignKey_Indexes_union::referenced_index_guid" <-- "repo.ForeignKey_Indexes_union_T::referenced_index_guid"
"repo.ForeignKey_Indexes_union::referenced_index_name" <-- "repo.ForeignKey_Indexes_union_T::referenced_index_name"
"repo.ForeignKey_Indexes_union::referenced_IndexPatternColumnDatatype" <-- "repo.ForeignKey_Indexes_union_T::referenced_IndexPatternColumnDatatype"
"repo.ForeignKey_Indexes_union::referenced_IndexPatternColumnName" <-- "repo.ForeignKey_Indexes_union_T::referenced_IndexPatternColumnName"
"repo.ForeignKey_Indexes_union::referenced_RepoObject_fullname" <-- "repo.ForeignKey_Indexes_union_T::referenced_RepoObject_fullname"
"repo.ForeignKey_Indexes_union::referenced_RepoObject_fullname2" <-- "repo.ForeignKey_Indexes_union_T::referenced_RepoObject_fullname2"
"repo.ForeignKey_Indexes_union::referenced_RepoObject_guid" <-- "repo.ForeignKey_Indexes_union_T::referenced_RepoObject_guid"
"repo.ForeignKey_Indexes_union::referenced_SysObject_name" <-- "repo.ForeignKey_Indexes_union_T::referenced_SysObject_name"
"repo.ForeignKey_Indexes_union::referenced_SysObject_schema_name" <-- "repo.ForeignKey_Indexes_union_T::referenced_SysObject_schema_name"
"repo.ForeignKey_Indexes_union::referencing_index_guid" <-- "repo.ForeignKey_Indexes_union_T::referencing_index_guid"
"repo.ForeignKey_Indexes_union::referencing_index_name" <-- "repo.ForeignKey_Indexes_union_T::referencing_index_name"
"repo.ForeignKey_Indexes_union::referencing_IndexPatternColumnDatatype" <-- "repo.ForeignKey_Indexes_union_T::referencing_IndexPatternColumnDatatype"
"repo.ForeignKey_Indexes_union::referencing_IndexPatternColumnName" <-- "repo.ForeignKey_Indexes_union_T::referencing_IndexPatternColumnName"
"repo.ForeignKey_Indexes_union::referencing_RepoObject_fullname" <-- "repo.ForeignKey_Indexes_union_T::referencing_RepoObject_fullname"
"repo.ForeignKey_Indexes_union::referencing_RepoObject_fullname2" <-- "repo.ForeignKey_Indexes_union_T::referencing_RepoObject_fullname2"
"repo.ForeignKey_Indexes_union::referencing_RepoObject_guid" <-- "repo.ForeignKey_Indexes_union_T::referencing_RepoObject_guid"
"repo.ForeignKey_Indexes_union::referencing_SysObject_name" <-- "repo.ForeignKey_Indexes_union_T::referencing_SysObject_name"
"repo.ForeignKey_Indexes_union::referencing_SysObject_schema_name" <-- "repo.ForeignKey_Indexes_union_T::referencing_SysObject_schema_name"
"repo.ForeignKey_Indexes_union::update_referential_action" <-- "repo.ForeignKey_Indexes_union_T::update_referential_action"
@enduml

