Sunday, January 1, 2012

Re: Multiple access to static data

If you are sending a 2mb json on every action and there are only about
40 nutrients per food, either I am missing a point or something is
really wrong about your logic.

On Dec 3 2011, 12:34 pm, mf <mf2...@gmail.com> wrote:
> I'm building an application and I'm having trouble making a choice
> about how is the best way to access multiple times to static data in a
> django app. My experience in the field is close to zero so I could use
> some help.
>
> The app basically consists in a drag & drop of foods. When you drag a
> food to a determined place(breakfast for example) differents values
> gets updated: total breakfast calories, total day nutrients(Micro/
> Macro), total day calories, ...That's why I think the way I store and
> access the data it's pretty important performance speaking.
>
> This is an excerpt of the json file I'm currently using:
>
> foods.json
>
> {
> "112": {
>     "type": "Vegetables",
>     "description": "Mushrooms",
>     "nutrients": {
>         "Niacin": {
>             "unit": "mg",
>             "group": "Vitamins",
>             "value": 3.79
>         },
>         "Lysine": {
>             "units": "g",
>             "group": "Amino Acids",
>             "value": 0.123
>         },
>         ... (+40 nutrients)
>     "amount": 1,
>     "unit": "cup whole",
>     "grams": 87.0 }
>  }
>
> I've thought about different options:
>
> 1) JSON(The one I'm currently using):
>
> Every time I drag a food to a "droppable" place, I call a getJSON
> function to access the food data and then update the corresponding
> values. This file has a 2mb size, but it surely will increase as I add
> more foods to it. I'm using this option because it was the most
> quickest to begin to build the app but I don't think it's a good
> choice for the live app.
>
> 2) RDBMS with normalized fields:
>
> I could create two models: Food and Nutrient, each food has 40+
> nutrients related by a FK. The problem I see with this is that every
> time a food data request is made, the app will hit the db a lot of
> times to retrieve it.
>
> 3) RDBMS with picklefield:
>
> This is the option I'm actually considering. I could create a Food
> models and put the nutrients in a picklefield.
>
> 4) Something with Redis/Django Cache system:
>
> I'll dive more deeply into this option. I've read some things about
> them but I don't clearly know if there's some way to use them to solve
> the problem I have.
>
> Thanks in advance, Mariano.

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to django-users+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/django-users?hl=en.

No comments:

Post a Comment