Need advise on data model

Hi, I have a fairly simple data model which is made of 4 tables:

  • Categories
  • Attributes
  • Objects
  • Evaluations

Categories is the parent
There is a set of Attributes for each category
All the objects within a category shall receive an evaluation for each attribute

The workflow I’m trying to realize is:

  1. the user generate a category
  2. the user generate all the attributes within the category
  3. the user generate the objects within the category
  4. for each object generated, the user is immediatly asked to evaluate all the attributes

I have no problems with the first 3 steps. However, I can’t see how to generate the evaluations for all the attributes when I create a new object

I’ve set up the relationships like:

Category

  • objects (1-n)
  • attributes (1-n)

Evaluations

  • objects (n-1)
  • attributes (n-1)
  • votes

Basically I fail to load the attributes in the Evaluations table, which in SQL would be a simple join.

I tryed to create for the current object, a custom list of all the attributes filtered by the current category, and for each row of the list an input field for the vote.
The only way to make it close to work seems to be an action for each row of the list, to create a new vote in the Evaluations collection picking the attributes name from the current attributi.
However, the result is really terrible from a user’s point of view, it’s like being asked to confirm at each single input field in a questionnaire/form.

Any advises?
many thanks

Hi @Alessandro.ferrarese,

What UX do you expect to have for a user? Something like a page with a list of evaluations for all attributes of an object? And user has to enter values there (I guess it is votes) and press one “submit” button?

The main issue here is that Adalo doesn’t have a built-in method to create several records in a collection at the same time. E.g. if you need to create 5 evaluations for each category of an object, you need to have 5 “Create Evaluation” actions (and as I understand you did something similar).

In order to create several records at the same time, potential workaround could be to use countdown timer. What I can think of:

  • add a property to manage timer’s visibility (Users → TimerVisible, T/F)
  • add a countdown timer to a list of attributes you’re evaluating. Make it conditionally visible (see above)
  • add an input to that list
  • make sure that Logged-in User → TimerVisible is false before you get to the screen
  • for a timer, add an action for “Countdown finished” to create new Evaluation with the value from the Input (it should work inside one list item)
  • and finally, add a “Submit” button (not in the list) which changes Logged-in User → TimerVisible to True.

Such approach might work for not-so-long list (5…10…15 entries).

Hope this helps.

Best regards, Victor.

1 Like

Thank you Victor for the help

here is an example that I’m using for testing

As you can see, the ux is quite … fragmented, but it can’t be helped I think, and for an mvp it still is acceptable
But what really bothers me is the last screen, the one with the votes, where the user has to save each vote individually

I understand your suggestion, I’ll give it a try, it’s like an autosave, it doesn’t sounds performance friendly, but let’s see…
I’ve tryed also to add an action to the select field, but it doesn’t work well in terms of ux

I’ll also give a try to a little idea of mine, like:

  • saving into the category a parameter with the number of attributes,
  • add an index to the eavluations (not sure how to)
  • create a certain number of actions (like, 20 actions or more if possible), with a progressive manual index, that will happen only of the index<number of attributes. Each action will generate upfront an evaluation for each attribute*object
  • use a slider to update the vote within each evaluation

well, thanks anyway

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.