gpt4 book ai didi

java - 在 SQLite 数据库中实现引用计数之类的东西

转载 作者:行者123 更新时间:2023-12-01 18:11:22 25 4
gpt4 key购买 nike

问题涉及两个 SQLite 数据库表:人员测量

一个人可以有多个测量值,但每个测量值只能有一个人。所以人与测量之间是1:M的关系。

我已经有一个显示所有人的列表。我自己编写的对象关系映射类将persons表中的数据库实体转换为person对象,然后将人名显示在列表中。

现在我必须扩展列表,不仅显示人员姓名,还显示每个人的测量次数。

一个列表条目应如下所示:

Person XY
2 Measurements

一种方法是在显示列表之前为每个人进行单独的 COUNT 查询。然而,这将是一个非常低效且糟糕的解决方案。

另一种方法是向 Persons 表添加一个 ref_count 列,该列必须包含相关测量的数量。

如果感觉关系数据库对于此类问题的结构很糟糕。我应该如何实现该列表?

最佳答案

关系数据库非常适合这种用途。

在查询人员表时,您需要更改查询以包含每个人的测量表中的项目数。像这样的东西;

SELECT PersonName, Count(Measurements.ID) AS NumberOfMeasurements
FROM Persons LEFT JOIN Measurements on Measurements.PersonID = Persons.ID
GROUP BY Persons.ID, Persons.PersonName

这将在结果光标中显示两列,即人员姓名和称为 NumberOfMeasurements 的测量计数。我的 SQL 可能不准确,但计数、连接和分组依据是重要的位。请注意,您从 Persons 表返回的所有字段都必须包含在分组依据中。

参见this详情请见网站

关于java - 在 SQLite 数据库中实现引用计数之类的东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32777758/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com