小编Ste*_*eed的帖子

分层数据模型的替代方案

问题域

我正在开发一个相当大的应用程序,它使用分层数据模型.它采用图像,提取图像的特征并在这些特征之上创建分析对象.所以基本模型就像Object-(1:N)-Image_features-(1:1)-Image.但是同一组图像可用于创建多个分析对象(具有不同选项).

然后一个对象和图像可以有很多其他连接对象,就像分析对象可以用附加数据或复杂的结论(解决方案)可以基于分析对象和其他数据.

当前解决方案

这是解决方案的草图.堆栈表示对象集,箭头表示指针(即图像特征链接到它们的图像,但反之亦然).一些部分:图像,图像特征,附加数据,可以包含在多个分析对象中(因为用户想要对不同的对象集进行分析,以不同的方式组合).

当前解决方案简化草图

图像,特征,附加数据和分析对象存储在全局存储(上帝对象)中.解决方案通过组合存储在分析对象内(并依次包含解决方案功能).

所有实体(图像,图像特征,分析对象,解决方案,附加数据)都是相应类的实例(如IImage,...).几乎所有部件都是可选的(即,我们可能希望在我们有解决方案后丢弃图像).

目前的解决方案缺点

  1. 当您需要草图中的虚线连接时,导航此结构会很痛苦.如果必须在顶部显示具有几个解决方案功能的图像,则首先必须遍历分析对象以查找哪些基于此图像,然后迭代解决方案以显示它们.
  2. 如果要解决1.您选择明确存储点链接(即图像类将指向与之相关的解决方案功能),您将非常努力地保持这些指针的一致性并在某些更改时不断更新链接.

我的想法

我想构建一个更具扩展性(2)和灵活(1)的数据模型.第一个想法是使用关系模型,分离对象及其关系.为什么不在这里使用RDBMS-sqlite对我来说似乎是一个合适的引擎.因此,复杂的关系可以通过数据库中的简单(左)JOIN来访问:伪代码" images JOIN images_to_image_features JOIN image_features JOIN image_features_to_objects JOIN objects JOIN solutions JOIN solution_features"),然后通过ID从全局存储中获取解决方案特征的实际C++对象.

这个问题

所以我的主要问题是

  • 使用RDBMS是我描述的问题的合适解决方案,还是不值得,有更好的方法来组织我的应用程序中的信息?

如果RDBMS没问题,我会很感激有关使用RDBMS和关系方法存储C++对象关系的任何建议.

c++ datamodel hierarchical-data

10
推荐指数
1
解决办法
1003
查看次数

在一个大的MFC Windows专用应用程序中使用Qt会加速开发吗?

我知道有很多Qt和MFC问题,但我会尝试非常具体.

我们有一个很大的(10年的开发)C++ MFC应用程序的利基行业.它应该永远只保留Windows和英语.但是我们需要添加一堆新的设计器绘制的GUI和GUI控件(对话框,按钮,自定义列表......).

我们可以雇用1或2个新的GUI开发人员来构建这些新接口,因此我们可以选择与MFC不同的技术.

Qt似乎最有希望并且适合与MFC并排运行(哦,不,我们不是从头开始减少应用程序).

似乎大多数引用的Qt优势都是无关紧要的:跨平台开发,易于国际化,开源,非GUI库(我们不需要网络,并且已经实现了大部分其他功能).

但Qt也因其良好的OO设计而闻名,他们最近推出了QtQuick.我想给它一个机会,所以问题是

  • 在仅限商业Windows的项目中,从纯MFC 迁移到MFC + Qt的实质优势是什么,这值得学习Qt的麻烦,将其集成到我们的构建/部署过程中并且可能支付商业许可证?
  • 特别是,如果我们在Qt中构建新的GUI并通过QWinWidget将它们合并到应用程序中,它会加速开发吗?

c++ qt mfc

5
推荐指数
1
解决办法
1901
查看次数

SymStore-添加多个文件

我正在尝试使用将一堆.pdb文件添加到符号服务器symstore.exe。并非目录中的所有.pdb,而是其中的一部分(基于日期)。

为了将它们添加到单个事务中,我使用的是symstore ... /f '@filelist.txt'where filelist.txt.pdb每行包含一个真实文件的文件-正如命令行帮助所述:

/f File         Network path of files or directories to add.
                If the named file begins with an '@' symbol, it is treated
                as a response file which is expected to contain a list of
                files (path and filename, 1 entry per line) to be stored.
Run Code Online (Sandbox Code Playgroud)

(此信息仅存在于的命令行帮助中symstore,而不存在于相应的联机帮助页面中。)

这只是行不通,它存储了0个文件。我认为此功能-从文件列表添加多个文件-并未真正实现。

有人在与的单个事务中添加文件列表成功symstore.exe吗?

windows symbol-server symstore pdb

3
推荐指数
1
解决办法
947
查看次数

标签 统计

c++ ×2

datamodel ×1

hierarchical-data ×1

mfc ×1

pdb ×1

qt ×1

symbol-server ×1

symstore ×1

windows ×1