Qt:查看具有指向多个其他表的外键列的表中的数据
我有一个表 Thingsies
,其中包含 id
、data1
、otherTableId
、otherTableRowId
列。我需要最后两列而不仅仅是外键列,因为根据 Thingy
我想要的信息类型有所不同。otherTableId
引用表 OtherTables
中的 id
,该表本身具有名为 id
和 tableName.这些
tableNames
是其他表的名称,例如 OtherTable1
、OtherTable2
。Thingies
中的 otherTableRowId
列引用 OtherTable
中由 otherTableId
给出的 id
。 OtherTables
本身包含更多数据。 Thingies 与 OtherTables
之一中的条目之间存在一一对应关系。因此 Thingies 中的行数是所有 OtherTables
中的总行数。 (这是糟糕的设计吗?)
我想在 QTableView
中显示 Thingies,其中包含 id
、data1
和 data2< 列/code>,其中
data2
是根据 otherTableId
和 otherTableRowId
以编程方式生成的。我应该如何进行?
谢谢。
I have a table Thingsies
, with columns id
, data1
, otherTableId
, otherTableRowId
. I need the last two columns instead of just a foreign key column because depending on the Thingy
the type of information I want there is different.otherTableId
references an id
in the table OtherTables
, which itself has columns called id
and tableName
. These tableNames
are the names of other tables, like OtherTable1
, OtherTable2
.
The column otherTableRowId
in Thingies
references an id
in the OtherTable
given by otherTableId
. The OtherTables
themselves have more data in them. There's a one-to-one correspondence between Thingies and entries in one of the OtherTables
. So the number of rows in Thingies is the total number of rows in all the OtherTables
. (Is this bad design?)
I want to display Thingies in a QTableView
that has columns for id
, data1
, and data2
, where data2
is generated programatically from otherTableId
and otherTableRowId
. How should I proceed?
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我想我已经解决了这个问题。我使用的是
QSqlQueryModel
,其查询是一堆选择语句的联合,每个OtherTable
一个。无论如何,每个 select 语句都必须使用特殊表达式以某种方式合并(例如连接)每个OtherTable
独有的数据,因此至少对于OtherTables
表来说对我来说没有用处。I think I've solved this. I'm using a
QSqlQueryModel
whose query is a union of a bunch of select statements, one for eachOtherTable
. Each select statement has to somehow merge (e.g., concatenate) the data unique to eachOtherTable
using a special expression anyway, so there's no use for me at least for theOtherTables
table.