Skip to content

Suggested data modelling approach #1529

Description

@alexvinidiktov

Hello,

I'm evaluating Kinto for use in a language learning web app.

Users can learn any number of languages, they can create shelves of flashcard lists (card decks), and they can learn the card lists using spaced repetition.

How would I model the data for optimal sync?

If I use one collection (languages) and nest everything under it, would sync be very slow for dozens of shelves containing hundreds of decks which contain thousands of cards?

Another approach I can think of is using one kinto collection per language. But I'm not sure this will speed up sync enough.

What about splitting the data into several collections (one per entity): languages, shelves, decks, cards?
Then I would need to link them together in some manner. This would presumable make sync faster. But this would cause relationship management issues, wouldn't it?

languages
-- shelves
---- decks
------ cards

Metadata

Metadata

Assignees

No one assigned

    Labels

    staleFor marking issues as stale. Labeled issues will be closed soon if label is not removed.

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions