如何在运行时识别应用程序中的多个sqlite数据库。我正在为iphone制作一个测试应用程序,在这个应用程序中,我需要5-6平方米的数据库,每个测试类别(主题)一个。帮助任何人
发布于 2012-09-26 13:58:03
由于这将是太长的评论,而且它确实以某种方式解决了您的问题,我再次建议在您的应用程序中使用不同的结构,因为拥有多个数据库对于像测验这样简单的事情是不实际的。
您可以在这里找到一些数据库结构示例-- 在数据库中存储多个选择测试--确定模式或用PHP和MySQL开发“问答”网络应用程序的数据库设计
假设您有不同类别的简单测试,一种可能的选择是将您的类别存储在类别表中。
* Category
- category_id (integer)
- category_name (string/text)每个人的id都是唯一的。例如,您可以使用id 1的类别运动,以及id 2的类别历史记录。
这些问题可以存储在另一个表中,名为问句。
* Questions
- question_id (integer)
- question_category (integer)
- question_text (string/text)
- question_correct_answer_id (integer)你可以问第一个问题:是哪个队打的无名氏?在question_category字段中放置1,因为1是运动类别的id。在question_correct_answer_id中,您将存储正确答案的id (不是答案本身,而是id)。
最后但并非最不重要的是,回答表。
* Answers
- answer_id (integer)
- question_id (integer)
- answer_text (string/text)在这里,answer_id是答案的id,如果答案是正确的,您可以将它存储在问题表中,并存储一个question_id来识别问题。
然后你就可以做这样的事情:
`SELECT * FROM Questions WHERE 'question_category' = 1` 把所有体育问题都提出来。对于每一个问题,你都可以
SELECT * FROM Answers WHERE 'question_id' = 'your question's id'请注意,我的示例并不是最好的解决方案,它只是一个只使用单个数据库的基本示例,但是使用多个表而不是多个数据库。
我给你的建议是考虑这一选择,如果你认为值得的话,读一些关于数据库的内容,然后设计一个更好的数据库。
祝好运!
发布于 2012-09-26 12:25:14
使用简单的口蹄疫。
识别数据库很简单,我不明白这个问题.
FMDatabase *dbQuestions = [FMDatabase databaseWithPath:@"/tmp/tmpA.db"];
FMDatabase *dbAnswers = [FMDatabase databaseWithPath:@"/tmp/tmpB.db"];
FMDatabase *dbPeople = [FMDatabase databaseWithPath:@"/tmp/tmpC.db"];
[...]
[dbQuestions open]
[dbAnswers open]
[dbPeople open]
[...]干杯。
https://stackoverflow.com/questions/12601425
复制相似问题