diff --git a/d2graph/d2graph.go b/d2graph/d2graph.go index f80a35b21..98973e554 100644 --- a/d2graph/d2graph.go +++ b/d2graph/d2graph.go @@ -1024,8 +1024,11 @@ func (obj *Object) GetDefaultSize(mtexts []*d2target.MText, ruler *textmeasure.R } maxTypeWidth = go2.Max(maxTypeWidth, typeDims.Width) - if c.Constraint != "" { - // covers UNQ constraint with padding + if c.Constraint == "primary_key_foreign_key" { + // covers "PK FK" constraint with padding + constraintWidth = 80 + } else if c.Constraint != "" && constraintWidth == 0 { + // covers remaining constraints with "UNQ" being the largest constraintWidth = 60 } } diff --git a/d2target/sqltable.go b/d2target/sqltable.go index 6ffbddf05..a10821a99 100644 --- a/d2target/sqltable.go +++ b/d2target/sqltable.go @@ -46,6 +46,8 @@ func (c SQLColumn) ConstraintAbbr() string { return "PK" case "foreign_key": return "FK" + case "primary_key_foreign_key": + return "PK FK" case "unique": return "UNQ" default: