実現したいこと
Android Studio で一つのデータベースで二つのテーブルを作ることはできないのですか?
できれば正規化とかできるようにしたい
該当のソースコード
Java
1package com.example.task_project; 2 3import android.content.Context; 4import android.database.sqlite.SQLiteDatabase; 5import android.database.sqlite.SQLiteOpenHelper; 6import static com.example.task_project.Parent_class.DBEntry; 7import static com.example.task_project.Child_class.DBEntry_2; 8 9public class DatabaseHelper extends SQLiteOpenHelper { 10 static final private int VERSION = 2; 11 12 static final private String DBNAME = "Task.db"; 13 14 public DatabaseHelper(Context context) { 15 super(context, DBNAME, null, VERSION); 16 } 17 18 public void onCreate(SQLiteDatabase db) { 19 20 // テーブルを作成 21 db.execSQL( 22 "CREATE TABLE "+ DBEntry.Table_Name + 23 " (" + 24 DBEntry._ID + 25 " INTEGER PRIMARY KEY, " + 26 DBEntry.Name + 27 " TEXT default 'カテゴリー名'" + 28 " ) " 29 ); 30 31//ここの部分のデータベースが生成されていません 32 db.execSQL( 33 "CREATE TABLE "+ DBEntry_2.Table_Name + " (" + 34 DBEntry_2._ID + " INTEGER PRIMARY KEY, " + 35 DBEntry_2.Name + " TEXT default 'タスク名', " + 36 DBEntry_2.flag + " INTEGER, " + 37 DBEntry_2.parent + " TEXT default 'カテゴリー名', " + 38 DBEntry_2.Date + " INTEGER DEFAULT (datetime(CURRENT_TIMESTAMP,'localtime')), " + 39 DBEntry_2.ranking + " INTEGER" + 40 " ) "); 41 42 db.execSQL( 43 "CREATE TRIGGER trigger_samp_tbl_update AFTER UPDATE ON " + DBEntry.Table_Name + 44 " BEGIN "+ 45 " UPDATE " + DBEntry.Table_Name + " SET up_date = DATETIME('now', 'localtime') WHERE rowid == NEW.rowid; "+ 46 " END;"); 47 } 48 // データベースをバージョンアップした時、テーブルを削除してから再作成 49 public void onUpgrade(SQLiteDatabase db, int i, int i1) { 50 51 db.execSQL("DROP TABLE IF EXISTS " + DBEntry.Table_Name); 52 onCreate(db); 53 } 54}
Java
1package com.example.task_project; 2 3import android.provider.BaseColumns; 4 5public class Child_class { 6 7 private Child_class(){} 8 9 public static class DBEntry_2 implements BaseColumns{ 10 public static final String Table_Name = "Child"; 11 public static final String Name = "Name"; 12 public static final boolean flag = true; 13 public static final String parent = "parent"; 14 public static final String Date = ""; 15 public static final String ranking = ""; 16 } 17 18}
Java
1package com.example.task_project; 2 3import android.provider.BaseColumns; 4 5public class Parent_class { 6 7 private Parent_class(){} 8 9 public static class DBEntry implements BaseColumns{ 10 public static final String Table_Name = "Parent"; 11 public static final String Name = "Name"; 12 } 13 14} 15
回答1件
あなたの回答
tips
プレビュー