我想创建一个用于管理、搜索和显示图像文件数据库的应用程序,类似于 Picasa 或 Shotwell,但我对数据库几乎没有经验。我打算使用 Qt 框架使用 SQLite。
假设有 50,000 个文件。通过以下数据搜索的最佳数据库表结构是什么?添加和删除文件相对较少,而查询和编辑将非常普遍。
- 图像文件的路径
- 缩略图文件的路径(此字段不可搜索)
- 各种元数据(作者、创建日期、尺寸、评级、文件类型等)
- 标签数组
如果我希望搜索在用户键入时发生(类似于 Picasa 或 Shotwell),这将需要每秒最多几个查询,我应该...
- 在启动时查询一次数据库并将数据保存在内存中?
- 在每次更新搜索框时查询数据库?
- 两者的混合?
据我了解,我应该创建一个包含外键的常见重复数据(标签、作者、文件类型)表。这是一个正确的假设吗?对于每个文件可能唯一的数据(例如创建日期或文件名),是否有替代方法来简单地搜索整个文件表?
任何意见,将不胜感激。谢谢你。