Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 图像库的SQLite数据库结构_C++_Database_Qt_Sqlite - Fatal编程技术网

C++ 图像库的SQLite数据库结构

C++ 图像库的SQLite数据库结构,c++,database,qt,sqlite,C++,Database,Qt,Sqlite,我想创建一个用于管理、搜索和显示图像文件数据库的应用程序,类似于Picasa或Shotwell,但我对数据库几乎没有经验。我打算使用Qt框架使用SQLite 让我们假设50000个文件。通过以下数据搜索的最佳数据库表结构是什么?添加和删除文件相对较少,而查询和编辑则非常常见 图像文件的路径 缩略图文件的路径(无法搜索此字段) 各种元数据(作者、创建日期、维度、评级、文件类型等) 标签数组 如果我希望以用户类型(类似于Picasa或Shotwell)的形式进行搜索,这将每秒需要几个查询,我是否应该

我想创建一个用于管理、搜索和显示图像文件数据库的应用程序,类似于Picasa或Shotwell,但我对数据库几乎没有经验。我打算使用Qt框架使用SQLite

让我们假设50000个文件。通过以下数据搜索的最佳数据库表结构是什么?添加和删除文件相对较少,而查询和编辑则非常常见

  • 图像文件的路径
  • 缩略图文件的路径(无法搜索此字段)
  • 各种元数据(作者、创建日期、维度、评级、文件类型等)
  • 标签数组
  • 如果我希望以用户类型(类似于Picasa或Shotwell)的形式进行搜索,这将每秒需要几个查询,我是否应该

  • 在启动时查询数据库一次并将数据保存在内存中
  • 是否在每次更新搜索框时查询数据库
  • 两者兼而有之
  • 据我所知,我应该创建一个包含外键的常见重复数据(标记、作者、文件类型)的表。这是正确的假设吗?对于每个文件可能唯一的数据(如创建日期或文件名),是否有其他方法可以简单地搜索整个文件表

    如有任何建议,将不胜感激。多谢各位