====== 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" ]; }