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);
エラーは重複した列を示します。私はデータベースについてよく知らない。どんな助けもありがとう。
答えを確認する機会はありましたか? – usajnf
はい、以下が答えです。 @usajnfが述べたように。この2つの列を書くのではなく、 "_ALARM_ID_TO_ALARM_TIMINGS INTEGER、_ALARM_ID_TO_ALARM_TIMINGS REFERENCES Alarm(_ALARM_ID)" ' シンプルライトこの_ALARM_ID_TO_ALARM_TIMINGSを参照してください。アラーム(_ALARM_ID) –