2016-08-07 11 views
1

BasicModel TableとExtendCategory1 Tableに1対多の関係があるテーブルを作成しようとしています。 BasicModel(One) - > ExtendCategory1(Many)。 次に、ExtendCategory1テーブルとアラームテーブルには1対1の関係があります。また、Alarm TableとAlarmTimings Tableには1対1の関係があります。SQLiteテーブル間の多対多リレーションシップ

このIDは以下のコードです。しかし、それは動作していません。何か案は?

String basicModelCreateQuery = "CREATE TABLE BasicModel" + 
        "(_BasicModel_ID integer primary key autoincrement," + 
        "CATEGORY TEXT);"; 
      db.execSQL(basicModelCreateQuery); 

      db.execSQL("INSERT INTO BasicModel VALUES (0, 'Category 1')"); 
      db.execSQL("INSERT INTO BasicModel VALUES (1, 'Category 2')"); 

      String extendCategory1CreateQuery = "CREATE TABLE ExtendCategory1" + 
        "(_ExtendCategory1_ID integer primary key autoincrement," + 
        "_BasicModel_ID_TO_ExtendCategory1_ID INTEGER, _BasicModel_ID_TO_ExtendCategory1_ID REFERENCES BasicModel(_BasicModel_ID)," + 
        "NAME TEXT, DESCRIPTION TEXT);"; 
      db.execSQL(extendCategory1CreateQuery); 

      String alarmCreateQuery = "CREATE TABLE Alarm" + 
        "(_ALARM_ID integer primary key autoincrement, " + 
        "_ExtendCategory1_ID_TO_ALARM_ID INTEGER, _ExtendCategory1_ID_TO_ALARM_ID REFERENCES ExtendCategory1(_ExtendCategory1_ID)"+ 
        "FROM_DATE TEXT, TO_DATE TEXT, ALWAYS, TEXT, WHEN_CREATED TEXT, " + 
        "WHEN_COMPLETE TEXT, REPEAT TEXT, SOUND TEXT, VIBRATION TEXT);"; 
      db.execSQL(alarmCreateQuery); 

      String alarmTimingsCreateQuery = "CREATE TABLE AlarmTimings" + 
        "(_ALARM_TIMINGS_ID integer primary key autoincrement, " + 
        "_ALARM_ID_TO_ALARM_TIMINGS INTEGER, _ALARM_ID_TO_ALARM_TIMINGS REFERENCES Alarm(_ALARM_ID)"+ 
        "TIME1_HOUR INTEGER, TIME1_MINUTE INTEGER, TIME2_HOUR INTEGER, TIME2_MINUTE INTEGER, TIME3_HOUR INTEGER, TIME3_MINUTE INTEGER" + 
        "SUNDAY INTEGER, MONDAY INTEGER, TUESDAY INTEGER, WEDNESDAY INTEGER, THURSDAY INTEGER, FRIDAY INTEGER, SATURDAY INTEGER);"; 
      db.execSQL(alarmTimingsCreateQuery); 

エラーは重複した列を示します。私はデータベースについてよく知らない。どんな助けもありがとう。

+0

答えを確認する機会はありましたか? – usajnf

+0

はい、以下が答えです。 @usajnfが述べたように。この2つの列を書くのではなく、 "_ALARM_ID_TO_ALARM_TIMINGS INTEGER、_ALARM_ID_TO_ALARM_TIMINGS REFERENCES Alarm(_ALARM_ID)" ' シンプルライトこの_ALARM_ID_TO_ALARM_TIMINGSを参照してください。アラーム(_ALARM_ID) –

答えて

0

私はこの部分が重複する列として取り上げられていると思う:

"_ALARM_ID_TO_ALARM_TIMINGS INTEGER, _ALARM_ID_TO_ALARM_TIMINGS REFERENCES Alarm(_ALARM_ID)"+ 

私は2番目「_ALARM_ID_TO_ALARM_TIMINGS」は削除されるべきだと思います。

関連する問題