Gabriel
February 11, 2021, 9:09am
4
Hi @lastmjs
I’ve been researching this for a bit but it seems BigMap won’t be the solution for a relational db.
As @enzo said and AFAIK bigmap will behave like an auto-scalable redis.
Check Matt’s answer here(scroll down a bit): Idea for CRUD types - feedback appreciated - #4 by Gabriel
I’ve been working on simple structure for a graph as well and hopefully I’ll be able to share that soon but it’s going slow because of my different background (go and ts).
For a better understanding I would suggest to have a look at:
In computing, a graph database (GDB) is a database that uses graph structures for semantic queries with nodes, edges, and properties to represent and store data. A key concept of the system is the graph (or edge or relationship). The graph relates the data items in the store to a collection of nodes and edges, the edges representing the relationships between the nodes. The relationships allow data in the store to be linked together directly and, in many cases, retrieved with one operation. Gra Gr...
These days the V-commandments of Big Data have opened up the doors to diversity and rather incompatible paradigms such as: Key/Value stores, incl. columnar or long rows, hierarchical storage like aggregates or collections and, last but not least,...
Most of the online docs are pointing towards neo4j and it will be a bit hard to get your head around it but the core implementantion could start with this:
/// example implementations for NodeId type public module NodeId { public func nat() : NodeId<Nat> = { hash=Hash.hash; equal=Nat.equal }; }; /// efficient representation (to do -- write down invariants) type Graph<I, N, E> = { nodeId : NodeId<I>; nodes : Trie.Trie<I, N>; edges : Sequence.Sequence<EdgeInfo<I, E>>; }; public func empty<I, N, E>(_nodeId : NodeId<I>) : Graph<I, N, E> = { { nodeId = _nodeId; nodes = Trie.empty(); edges = Sequence.empty();
7 Likes