【发布时间】:2020-10-21 22:25:22
【问题描述】:
我正在编写一个简单的字母猜谜游戏,其中类别和短语存储在 sqlite 数据库中。 一个表(类别)包含表名和表的人类可读标题。 还有 31 个其他表格,其中包含短语。
虽然我可以使用两个 sql 查询来做到这一点,第一个是检索一个随机表名,另一个是从第二个表中检索随机短语。
"SELECT tablename, title FROM categories order by Random() limit 1";
然后将tablename分配给变量表。
"SELECT phrase FROM " + table + " order by Random() limit 1";
我想弄清楚的是如何组合这些语句,以便我可以将其存储为视图,然后我的程序不需要了解数据库的内部结构。
我希望我已经解释得足够清楚了,提前谢谢你。
【问题讨论】:
-
我建议您修复您的设计。这 31 个表应该只是一个表,类别为一列。
-
我确实想过,但是这个数据库中大约有 50,000 个短语,我不确定如何自动化该过程。源代码位于github.com/bcburnett/TodoList 的 github 存储库中
-
我倾向于尝试创建一个 UNION ALLs 这 31 个表的视图(假设它们具有相似的结构)。然后大概您可以将 Random() 选择应用于视图,而不必关心表名。我认为不可能“动态”选择要使用视图查询的表。