【发布时间】:2012-01-11 22:38:52
【问题描述】:
我正在构建一个应用程序,但在选择如何以最佳方式多次访问 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(我目前正在使用的那个):
每次我将食物拖到“可放置”的地方时,我都会调用一个 getJSON 函数来访问食物数据,然后更新相应的值。这个文件有 2mb 大小,但随着我添加更多食物,它肯定会增加。我之所以使用此选项,是因为它是开始构建应用程序的最快速度,但我认为它不是实时应用程序的好选择。
2) 具有标准化字段的 RDBMS:
我可以创建两个模型:食物和营养,每种食物都有 40 多种由 FK 相关的营养。我看到的问题是每次发出食物数据请求时,应用程序都会多次访问数据库以检索它。
3) 带picklefield的RDBMS:
这是我实际上正在考虑的选项。我可以创建一个食物模型并将营养物质放入泡菜地。
4) Redis/Django Cache 系统的一些东西:
我将更深入地探讨这个选项。我已经阅读了一些关于它们的内容,但我不清楚是否有某种方法可以使用它们来解决我遇到的问题。
提前致谢, 马里亚诺。
【问题讨论】:
标签: django json postgresql redis pickle