2017-05-10 23 views
0

さて、私はインストラクターと学生の間でメッセージを交換できるアプリケーションを構築しようとしています。 ContentProviderクラスを作成する必要がありますが、InstructorクラスとStudentクラスの多対多の関係を表現する方法に問題が発生しました。問題よりも混乱しています。SQLiteデータベースのジャンクションテーブル

私は例えば、接合テーブルを作成する必要があることを知っている:

CREATE TABLE InstructorStudent (
Student INTEGER REFERENCES Student (student_id), 
Instructor INTEGER REFERENCES Instructor (instructor_id), 
PRIMARY KEY (student_id, instructor_id)) 

しかし、私は疑問を持っている:私のように、接合テーブルの主キーを作成する場合、それは悪い習慣を考えられています自動的にインクリメントする単純な整数?

エクストラ質問

はどのようにして、特定のインストラクターのための学生、およびその逆の一覧を取得するのですか?

+0

MySQL、Javaなどをお探しですか?ジャンクション・テーブルの主キーは、 'student_id'と' instructor_id'の組み合わせでなければなりません。これはおそらくあなたがAndroidからMySQLを使用しているため変わらないでしょう。 –

+0

いいえ、私はSQLiteを使用しています。私は混乱のために申し訳ありません、それはMySQLの代わりにSQLiteタグだったはずです。 – nullbyte

答えて

2

私はあなたが結合テーブルの自動インクリメンタを必要としないと思います。インストラクターのIDと学生IDの両方がユニークである限り、あなたは大丈夫です。

特定のインストラクターの生徒のリストを取得するにはどうしたらいいですか?

は、あなたの学生のテーブルはここでは、このtbl_student

である私は、クエリを書くだろうかと言うことができます。

select * from junctionStudentConstructor where InstructorStudent.Instructor = insid;

インストラクターIDとinsid置き換え。