From 7275e4b7b73731de4e6cd2118aa582cb2237ac9d Mon Sep 17 00:00:00 2001 From: Özgür Kesim Date: Sat, 8 Oct 2022 13:02:39 +0200 Subject: added database schema scetch --- design-documents/028-deposit-policies.rst | 61 ++++++++++++++++++++++++++++--- 1 file changed, 55 insertions(+), 6 deletions(-) diff --git a/design-documents/028-deposit-policies.rst b/design-documents/028-deposit-policies.rst index 5a5bccdc..8dc87e8e 100644 --- a/design-documents/028-deposit-policies.rst +++ b/design-documents/028-deposit-policies.rst @@ -47,18 +47,67 @@ Proposed Solution TODO, explain: -- DB-schema design - - - deposit - - policy_details - - policy_fulfiment - - C-structs for policy extensions (esp. the handlers) - Naming conventions for policy extensions - Deadlines and -handling - API-endpoints (``/extensions/policy_...``) - Typical choreography of a deposit with policy and its fulfilment +Database-schema +^^^^^^^^^^^^^^^ + +TODO: Description + +.. graphviz:: + + digraph deposit_policies { + rankdir = LR; + splines = false; + fontname="monospace" + node [ + fontname="monospace" + shape=record + ] + + subgraph cluster_deposits { + label=<deposits> + margin=20 + deposits [ + label="...|policy_details_id\l|...|timestamp\l|..." + ] + } + + subgraph cluster_policy_details { + label=<policy_details> + margin=20 + policy_details [ + label="id\l|serial_id (unique)\l|deadline\l|fulfilment_state\l" + ] + } + + subgraph cluster_policy_fulfilments { + label=<policy_fulfilments> + margin=20 + rank=min; + policy_fulfilments [ + label="id\l|proof\l|timestamp\l" + ] + } + + subgraph cluster_policy_details_fulfilments { + label=<policy_details_fulfilments> + margin=20 + policy_details_fulfilments [ + label="serial_id\l|fulfilment_id\l" + ] + } + + deposits:ref->policy_details:id [ label="n:1"; fontname="monospace" ]; + policy_details:serial->policy_details_fulfilments:ref_details [ dir=both; label="1:1"; fontname="monospace" ]; + policy_details_fulfilments:ref_fulfilments->policy_fulfilments:id [ label="n:1"; fontname="monospace" ]; + + } + Alternatives ============ -- cgit v1.2.3