【发布时间】:2014-09-01 12:39:47
【问题描述】:
如果已经有人问过这个问题,或者在其他地方回答了这个问题,我深表歉意。
无论如何,我正在开发一个项目,简而言之,它存储图像元数据,然后允许用户搜索所述元数据(类似于一长串键值对)。如果元数据是标准化的,这不会是太大的问题。但是,问题在于,对于数据库中的任何给定图像,其元数据中都有任意数量的键/值。也没有标准的键列表。
基本上,我需要找到一种方法来为每个模型存储一个字典,但可以使用任意键/值对。我需要能够查询它们。我工作的组织正计划将数千张图像上传到这个程序,所以它必须相当快地查询。
我的数据库中有一个模型,一个图像模型,带有filefield。
所以,我介于两个选项之间,我真的可以从有更多经验的人那里获得一些帮助来选择最好的一个(或任何其他效果更好的解决方案)
使用像MySql这样的传统关系型数据库,用
foreignkey对图像模型、键字段和值字段创建一个单独的模型。然后,当我需要查询数据时,我会询问与图像相关的这个单独表的每个实例,然后在这些行中查询我需要的键/值组合。使用 MongoDB 之类的东西,使用
django-toolbox及其DictField来存储元数据。然后,当我需要查询时,我将访问 dict 并在其中搜索我需要的键/值组合。
虽然我觉得 1 在查询时间方面会好得多,但每张图像可能有多达 40 个元数据键/值,这让我担心那个单独的“字典”表如果有成千上万的图像,则变得太大。
任何建议将不胜感激。谢谢!
【问题讨论】:
-
这能回答你的问题吗? arbitrary typed data in django model
标签: python mysql django mongodb database