strict digraph g {
ranksep="1.6" graph [ rankdir = "LR" ]; node [ fontsize = "16" ]; edge [ arrowhead = "none" ];
<%- tables.each do |table| -%> “<%= table.table_name %>” [shape=none, margin=0, label=<
<table border="0" cellborder="1" cellspacing="0" cellpadding="4"> <tr><td bgcolor="lightblue"><%= table.table_name %></td></tr> <%- table.flat_fields.each do |field| -%> <tr><td port="<%= field.name %>" align="left"><%= field.name %></td></tr> <%- end -%> </table>>];
<%- end -%> <%- tables.each do |table| -%>
<%- table.flat_fields.each do |field| -%> <%- if field.belongs_to_one && table_included?(field.belongs_to_one)-%>
“<%= table.table_name %>”:“<%= field.name %>” -> <%= arrow_target(field.belongs_to_one) %> [arrowhead=“tee<%= 'odot' if !field.required? %>”];
<%- end -%> <%- if field.has_many -%> <%- field.has_many.each do |r| -%> <%- if table_included?(r)-%>
“<%= table.table_name %>”:“<%= field.name %>” -> <%= arrow_target® %> [arrowhead=“crow<%= 'odot' if !field.required? %>”];
<%- end -%> <%- end -%> <%- end -%> <%- end -%>
<%- end -%> }