0

実行時にアプリ内の複数のsqliteデータベースを識別する方法を教えてください。私は、クイズの各カテゴリ(主題)に1つずつ、5〜6個のsqliteデータベースが必要なiPhone用のクイズアプリを作成しています。誰でも助けて

4

2 に答える 2

6

簡単なFMDBを使用します。

データベースの識別は簡単ですが、問題がわかりません...

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]
[...]

乾杯。

于 2012-09-26T12:25:14.570 に答える
0

これはコメントとして投稿するには長すぎますが、何らかの形であなたの質問に対処するため、アプリケーションに別の構造を使用することを再度お勧めします。複数のデータベースを持つことは、クイズのような単純なことには実用的ではありません.

ここでいくつかのデータベース構造の例を見つけることができます データベースに多肢選択式クイズを保存する - スキーマを決定するまたはここでPHP と MySQL を使用して「クイズ」Web アプリケーションを開発するためのデータベース設計

さまざまなカテゴリの単純なクイズがあると仮定すると、別の方法として、カテゴリをCategoriesテーブルに格納することができます。

* Category
    - category_id (integer)
    - category_name (string/text)

ID がそれぞれに一意になる場所。たとえば、id 1のカテゴリスポーツと id 2 のカテゴリhistoryを持つことができます。

質問は、 Questionsという名前の別のテーブルに保存できます。

* Questions
    - question_id (integer)
    - question_category (integer)
    - question_text (string/text)
    - question_correct_answer_id (integer)

質問 1: John Doe と対戦したのはどのチームですか? . 1 は Sports カテゴリの ID であるため、question_categoryフィールドには 1 を入力します。にquestion_correct_answer_idは、正解のIDを保存します(回答自体ではなく、IDのみ)

最後になりましたが、Answersテーブルです。

* Answers
    - answer_id (integer)
    - question_id (integer)
    - answer_text (string/text)

answer_idこれが回答の ID です。それが正しい場合は、質問テーブルに保存できますquestion_id。また、質問を識別するために a を使用できます。

次に、次のようなことができます。

`SELECT * FROM Questions WHERE 'question_category' = 1` 

すべてのスポーツの質問を取得します。そして、質問ごとに、次のことができます

SELECT * FROM Answers WHERE 'question_id' = 'your question's id'

注意してください、私の例は必ずしも最善の解決策ではありません。これは単一のデータベースのみを使用する基本的な例ですが、複数のデータベースではなく複数のテーブルを使用しています。

あなたへの私のアドバイスは、この代替案を検討することです.それが価値があると思うなら、データベースについて少し読んで、より良いものを設計してください.

幸運を!

于 2012-09-26T13:58:03.347 に答える