====== Database of the Part-Management ======
==== rights assignments ====
digraph aufbau {
graph [ rankdir="TB" ];
node [ shape=record, fontname=Helvetica, fontsize=10 ];
edge [ fontname=Helvetica, fontsize=10 ];
subgraph cluster0 { label = "rights"; style="solid"; color="gray"; spacing="4";
rxuy [label = "{ r1-u1| r2-u1| r1-u2| r2-u2}", color="blue"];
rxrgy [label = "{ r1-rg1| r2-rg1| r3-rg1| r1-rg2| r1-rg3}"];
rxrgugy [label = "{ r1-rg-ug1| r2-rg-ug1| r1-rg-ug2| r1-rg-ug2| r1-rg-ug2}"];
rxugy [label = "{ r1-ug1| r2-ug1| r1-ug12| r1-ug12}"];
}
subgraph cluster1 { label = "right groups"; style="solid"; color="gray";
rg [label = "{ rg1| rg2| rg3| rg-ug1| rg-ug2}"];
}
subgraph cluster2 { label = "users"; style="filled, dashed"; color="black"; fillcolor="green";
users [label = "{ u1| u2}"];
}
subgraph cluster3 { label = "user groups"; style="solid"; color="gray";
ug [label = "{ ug1| ug2}"];
}
rxuy:"r1-u1":w -> users:"u1":w [ arrowhead="open", style="solid" ];
rxuy:"r2-u1":w -> users:"u1":w [ arrowhead="open", style="solid" ];
rxuy:"r1-u2":w -> users:"u2":w [ arrowhead="open", style="solid" ];
rxuy:"r2-u2":w -> users:"u2":w [ arrowhead="open", style="solid" ];
rxrgy:"r1-rg1":e -> rg:"rg1":e [ arrowhead="open", style="solid" ];
rxrgy:"r2-rg1":e -> rg:"rg1":e [ arrowhead="open", style="solid" ];
rxrgy:"r3-rg1":e -> rg:"rg1":e [ arrowhead="open", style="solid" ];
rxrgy:"r1-rg2":w -> rg:"rg2":w [ arrowhead="open", style="solid" ];
rxrgy:"r1-rg3":w -> rg:"rg3":w [ arrowhead="open", style="solid", label="", color="gray"];
rxrgugy:"r1-rg-ug1":e -> rg:"rg-ug1":e [ arrowhead="open", style="solid" ];
rxrgugy:"r2-rg-ug1":e -> rg:"rg-ug1":e [ arrowhead="open", style="solid" ];
rxrgugy:"r1-rg-ug2":w -> rg:"rg-ug2":w [ arrowhead="open", style="solid" ];
rxrgugy:"r2-rg-ug2":w -> rg:"rg-ug2":w [ arrowhead="open", style="solid" ];
rxrgugy:"r3-rg-ug2":w -> rg:"rg-ug2":w [ arrowhead="open", style="solid" ];
rxugy:"r1-ug1":e -> ug:"ug1":e [ arrowhead="open", style="solid" ];
rxugy:"r2-ug1":e -> ug:"ug1":e [ arrowhead="open", style="solid" ];
rxugy:"r1-ug12":e -> ug:"ug1":e [ arrowhead="open", style="solid" ];
rxugy:"r2-ug12":e -> ug:"ug1":e [ arrowhead="open", style="solid" ];
rxugy:"r1-ug12":e -> ug:"ug2":e [ arrowhead="open", style="solid", color="red"];
rxugy:"r2-ug12":e -> ug:"ug2":e [ arrowhead="open", style="solid", color="red" ];
rg:"rg-ug1" -> ug:"ug1" [ arrowhead="open", style="solid" ];
rg:"rg-ug2" -> ug:"ug2" [ arrowhead="open", style="solid" ];
ug:"ug1" -> users:"u1" [ arrowhead="open", style="solid" ];
rg:"rg1" -> users:"u1" [ arrowhead="open", style="solid" ];
}
ab hier dann der zweite Versuch, vielleicht ist die Darstellung etwas besser
digraph rights_assignments {
graph [ rankdir="LR" ];
node [ shape=record, fontname=Helvetica, fontsize=10 ];
edge [ fontname=Helvetica, fontsize=10 ];
subgraph cluster0 { label = "rights"; style="solid"; color="gray";
r1_u1 [label = "r1-u1"];
r2_u1 [label = "r2-u1"];
r1_u2 [label = "r1-u2"];
r2_u1 [label = "r2-u2"];
r1_rg1 [label = "r1-rg1"];
r2_rg1 [label = "r2-rg1"];
r3_rg1 [label = "r3-rg1"];
r1_rg2 [label = "r1-rg2"];
r1_rg3 [label = "r1-rg3"];
r1_rg_ug1 [label = "r1-rg-ug1"];
r2_rg_ug1 [label = "r2-rg-ug1"];
r1_rg_ug2 [label = "r1-rg-ug2"];
r2_rg_ug2 [label = "r1-rg-ug2"];
r3_rg_ug2 [label = "r1-rg-ug2"];
r1_ug1 [label = "r1-ug1"];
r2_ug1 [label = "r2-ug1"];
r1_ug12 [label = "r1-ug12"];
r2_ug12 [label = "r1-ug12"];
}
subgraph cluster1 { label = "right groups"; style="solid"; color="gray";
rg1 [label = "rg1"];
rg2 [label = "rg2"];
rg3 [label = "rg3"];
rg_ug1 [label = "rg-ug1"];
rg_ug2 [label = "rg-ug2"];
}
subgraph cluster2 { label = "users"; style="filled, dashed"; color="black"; fillcolor="green";
u1 [label = "u1"];
u2 [label = "u2"];
}
subgraph cluster3 { label = "user groups"; style="solid"; color="gray";
ug1 [label = "ug1"];
ug2 [label = "ug2"];
}
r1_u1 -> u1 [ arrowhead="open", style="solid" ];
r2_u1 -> u1 [ arrowhead="open", style="solid" ];
r1_u2 -> u2 [ arrowhead="open", style="solid" ];
r2_u2 -> u2 [ arrowhead="open", style="solid" ];
r1_rg1 -> rg1 [ arrowhead="open", style="solid" ];
r2_rg1 -> rg1 [ arrowhead="open", style="solid" ];
r3_rg1 -> rg1 [ arrowhead="open", style="solid" ];
r1_rg2 -> rg2 [ arrowhead="open", style="solid" ];
r1_rg3 -> rg3 [ arrowhead="open", style="solid", label="", color="gray"];
r1_rg-ug1 -> rg_ug1 [ arrowhead="open", style="solid" ];
r2_rg-ug1 -> rg_ug1 [ arrowhead="open", style="solid" ];
r1_rg-ug2 -> rg_ug2 [ arrowhead="open", style="solid" ];
r2_rg-ug2 -> rg_ug2 [ arrowhead="open", style="solid" ];
r3_rg-ug2 -> rg_ug2 [ arrowhead="open", style="solid" ];
r1_ug1 -> ug1 [ arrowhead="open", style="solid" ];
r2_ug1 -> ug1 [ arrowhead="open", style="solid" ];
r1_ug12 -> ug1 [ arrowhead="open", style="solid" ];
r2_ug12 -> ug1 [ arrowhead="open", style="solid" ];
r1_ug12 -> ug2 [ arrowhead="open", style="solid", color="red"];
r2_ug12 -> ug2 [ arrowhead="open", style="solid", color="red" ];
rg_ug1 -> ug1 [ arrowhead="open", style="solid" ];
rg_ug2 -> ug2 [ arrowhead="open", style="solid" ];
ug1 -> u1 [ arrowhead="open", style="solid" ];
rg1 -> u1 [ arrowhead="open", style="solid" ];
}