[erlang-questions] Wrap my mind around NoSQL (Mnesia)

Roman Galeev jamhedd@REDACTED
Fri Nov 24 17:00:10 CET 2017


You can think about Mnesia as a multi-table key-value store, with some
features added like transactions. And you can use Erlang terms as keys
(say, a tuple). So, just tailor lookups to your needs, and it would be
clear do you need a set or a bag.

On Fri, Nov 24, 2017 at 3:50 PM, Silas <silas@REDACTED> wrote:

> Hi!
>
> (This is mainly a question about NoSQL conceptions.  If it is the wrong
> place to ask, sorry for that and, please, let me know).
>
> After years using RDBMS (with structured and OO paradigms at the
> programming language side) I'm diving into functional programming.  When
> choosing a programming language to practice, I immediately fell in love
> with Erlang for this simplicity and beauty.
>
> After reading some documentation, some chapters of a book and trying
> simple projects I decided to try a more complex project with Mnesia.  It is
> a social bookmarks website (something similar to what del.icio.us is)
> where user can bookmark a URL and associate one or more tags with it.  For
> instance, some could bookmark "erlang.org" to tags
> "functionalprogramming", "programminglanguage" and others.  Users also can
> query other users bookmarks, see what links are associated with a tag and
> what tags are associated with a given bookmark.
>
> In my mind, an RDBMS is a perfect solution for this problem.  I'm trying
> to fit it into the key -> value model, though.  My first question is: is
> this possible or I'm just doing the wrong thing by forcing the wrong
> solution?
>
> For what I understood, I need to get rid of normalization rules.  So I
> devised something more or less like that:
>
> User table: {username, {urls, [tags]}} % set
> UserTag table: {user, [tags]} % set
> TagUrls table: {tag, url} % bag
> TagUsers table: {tag, user} % bag
> Urlusers table: {url, user} %bag
> UrlTags table: {url, tag} %bag
>
> It is still a bit confusing where I'd use a set, a bag or an ordered_set
> but I think you got the whole picture.
>
> Any help?
>
> Thanks!
>
> --
> Silas
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/listinfo/erlang-questions
>



-- 
With best regards,
     Roman Galeev,
     +420 702 817 968
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20171124/196b179d/attachment.htm>


More information about the erlang-questions mailing list