Я создаю приложение, и у меня возникли проблемы с выбором того, как наилучшим образом получить доступ к статическим данным в приложении django. Мой опыт в области близок к нулю, поэтому я могу воспользоваться некоторой помощью.Множественный доступ к статическим данным в приложении django
Приложение в основном состоит из перетаскивания & Капля продуктов. Когда вы перетаскиваете пищу в определенное место (например, завтрак), различные значения обновляются: общий калорийность завтрака, общее количество питательных веществ в день (микро/макро), общее количество калорий в день ... Вот почему я думаю, что я храню и получаю доступ к данных, это довольно важная работа.
Это отрывок из файла JSON я в настоящее время с помощью:
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 }
}
Я думал о различных вариантах:
1) в формате JSON (Один В настоящее время я использую):
Каждый раз, когда я перетаскиваю пищу в «droppable» место, я вызываю функцию getJSON для доступа к данным о еде, а затем обновляю соответствующие значения. Этот файл имеет размер 2 МБ, но он, безусловно, будет увеличиваться по мере того, как я добавляю к нему больше продуктов. Я использую этот параметр, потому что это самое быстрое начало для создания приложения, но я не думаю, что это хороший выбор для живого приложения.
2) RDBMS с нормированными полями:
я мог бы создать две модели: Продукты питания и питательных веществ, каждая пища имеет 40+ питательные вещества, связанные с помощью FK. Проблема, которую я вижу в этом, заключается в том, что каждый раз, когда делается запрос данных о питании, приложение будет ударять db много раз, чтобы получить его.
3) RDBMS с picklefield:
Это вариант Я действительно рассматривает. Я мог бы создать модели продуктов питания и поместить питательные вещества в марихуану.
4) Что-то с системой Redis/Django Cache:
Я нырнуть глубже в этот вариант. Я прочитал кое-что о них, но я не знаю, есть ли способ использовать их для решения проблемы, которая у меня есть.
Заранее спасибо, Мариано.