first pass RT4 merge, RT#13852
[freeside.git] / rt / docs / schema.dot
diff --git a/rt/docs/schema.dot b/rt/docs/schema.dot
new file mode 100644 (file)
index 0000000..d81ceee
--- /dev/null
@@ -0,0 +1,99 @@
+digraph g {
+graph [
+rankdir = "RL",
+ concentrate = true,
+ratio = auto
+];
+node [
+fontsize = "18",
+shape = record, fontsize = 18
+];
+edge [
+];
+
+"Records" [shape = record, fontsize = 18, label = "(Any RT::Record)" ];
+"Records" -> "Principals" [label = "Creator → id"];
+"ACL" [shape = record, fontsize = 18, label = "<col0> \N " ];
+"ACL" -> "Principals" [label="PrincipalId → id"];
+"ACL" -> "Records" [label="ObjectId → id"];
+
+"Attachments" [shape = record, fontsize = 18, label = "<col0> \N " ];
+"Attachments" -> "Transactions" [label="TransactionId → id"];
+"Attachments" -> "Attachments" [label="Parent → id"];
+
+"CachedGroupMembers" [shape = record, fontsize = 18, label = "<col0> \N " ];
+"CachedGroupMembers" -> "Groups" [label="GroupId → id", weight=2];
+"CachedGroupMembers" -> "Principals" [label="MemberId → id"];
+"CachedGroupMembers" -> "CachedGroupMembers" [label="Via → id"];
+"CachedGroupMembers" -> "Groups" [label="ImmediateParentId → id"];
+
+"CustomFields" [shape = record, fontsize = 18, label = "<col0> \N " ];
+
+"CustomFieldValues" [shape = record, fontsize = 18, label = "<col0> \N " ];
+"CustomFieldValues" -> "CustomFields" [label="CustomField → id"];
+
+"GroupMembers" [shape = record, fontsize = 18, label = "<col0> \N " ];
+"GroupMembers" -> "Groups" [label="GroupId → id", weight=2];
+"GroupMembers" -> "Principals" [label="MemberId → id", weight = 2];
+
+"Groups" [shape = record, fontsize = 18, label = "<col0> \N " ];
+"Groups" -> "Principals" [label="id → id"];
+
+"Links" [shape = record, fontsize = 18, label = "<col0> \N " ];
+"Links" -> "Tickets" [label="LocalBase ⇢ id (usually)", style="dotted"];
+"Links" -> "Tickets" [label="LocalTarget ⇢ id (usually)", style="dotted"];
+
+"Principals" [shape = record, fontsize = 18, label = "<col0> \N " ];
+
+"Attributes" [shape = record, fontsize = 18, label = "<col0> \N " ];
+"Attributes" -> "Records" [label="ObjectId → id"];
+
+"Queues" [shape = record, fontsize = 18, label = "<col0> \N " ];
+
+"ScripActions" [shape = record, fontsize = 18, label = "<col0> \N " ];
+
+"ScripConditions" [shape = record, fontsize = 18, label = "<col0> \N " ];
+
+"Scrips" [shape = record, fontsize = 18, label = "<col0> \N " ];
+"Scrips" -> "ScripConditions" [label="ScripCondition → id"];
+"Scrips" -> "ScripActions" [label="ScripAction → id"];
+"Scrips" -> "Templates" [label="Template → id"];
+"Scrips" -> "Queues" [label="Queue → id"];
+
+"Templates" [shape = record, fontsize = 18, label = "<col0> \N " ];
+"Templates" -> "Queues" [label ="Queue → id" ];
+
+"ObjectCustomFields" [shape = record, fontsize = 18, label = "<col0> \N " ];
+"ObjectCustomFields" -> "CustomFields" [label="CustomField → id"];
+"ObjectCustomFields" -> "Records" [label="ObjectId → id"];
+
+"ObjectCustomFieldValues" [shape = record, fontsize = 18, label = "<col0> \N " ];
+"ObjectCustomFieldValues" -> "CustomFields" [label="CustomField → id"];
+"ObjectCustomFieldValues" -> "Records" [label="ObjectId → id"];
+
+"Tickets" [shape = record, fontsize = 18, label = "<col0> \N " ];
+"Tickets" -> "Tickets" [label="EffectiveId → id"];
+"Tickets" -> "Principals" [label="Owner → id"];
+"Queues" -> "Tickets" [style="invis"];
+"Tickets" -> "Queues" [label="Queue → id"];
+
+"Transactions" [shape = record, fontsize = 18, label = "<col0> \N " ];
+"Transactions" -> "Records" [label="ObjectId → id"];
+
+"Users" [shape = record, fontsize = 18, label = "<col0> \N " ];
+
+"Users" -> "Principals" [label="id → id"];
+
+// "Classes" [shape = record, fontsize = 18 label = "<col0> \N " ];
+// "Articles" [shape = record, fontsize = 18 label = "<col0> \N " ];
+// "Articles" -> "Classes" [ label="Class → id"];
+// "Articles" -> "Articles" [ label="Parent → id"];
+// "ObjectClasses" [shape = record, fontsize = 18 label = "<col0> \N " ];
+// "ObjectClasses" -> "Records" [label="ObjectId → id"];
+// "ObjectClasses" -> "Classes" [label="Class → id"];
+// "Topics" [shape = record, fontsize = 18 label = "<col0> \N " ];
+// "ObjectTopics" [shape = record, fontsize = 18 label = "<col0> \N " ];
+// "ObjectTopics" -> "Records" [label="ObjectId → id"];
+// "ObjectTopics" -> "Topics" [label="Topic → id"];
+
+}