public class GradebookDBHelper extends SQLiteOpenHelper {
public static final String DATABASE_NAME = "GradebookDatabase5";
public static final int DATABASE_VERSION = 15;
public static final String TABLE_SUBJECTS = "Subjects";
public static final String TABLE_GROUPS = "groups";
public static final String TABLE_STUDENTS = "Students";
public static final String TABLE_SUBJECTGROUP = "SubjectGroup";
public static final String TABLE_DATES = "Dates";
public static final String TABLE_ATTENDANCE = "Attendance";
public static final String TABLE_LABS = "Labs";
public static final String SUBJECTS_KEY_ID = "_id";
public static final String SUBJECTS_KEY_NAME = "subject";
public static final String GROUPS_KEY_ID = "_id";
public static final String GROUPS_KEY_NAME = "name";
public static final String STUDENTS_KEY_ID = "_id";
public static final String STUDENTS_KEY_NAME = "student";
public static final String STUDENTS_KEY_GROUPID = "groupid";
public static final String SUBJECTGROUP_KEY_ID = "_id";
public static final String SUBJECTGROUP_KEY_SUBJECTID = "subjectid";
public static final String SUBJECTGROUP_KEY_GROUPID = "groupid";
public static final String DATES_KEY_ID = "_id";
public static final String DATES_KEY_SUBJECTID = "subjectid";
public static final String DATES_KEY_DATE = "date";
public static final String ATTENDANCE_KEY_ID = "_id";
public static final String ATTENDANCE_KEY_STUDENTID = "studentid";
public static final String ATTENDANCE_KEY_DATE = "date";
public static final String ATTENDANCE_KEY_ATTENDED = "attended";
public static final String ATTENDANCE_KEY_SUBJECTID = "subjectid";
public static final String LABS_KEY_ID = "_id";
public static final String LABS_KEY_SUBJECTID = "subjectid";
public static final String LABS_KEY_NAME = "labname";
public static final String LABS_KEY_DONE = "done";
public GradebookDBHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
sqLiteDatabase.execSQL("create table " + TABLE_SUBJECTS + "(" +
SUBJECTS_KEY_ID + " integer primary key, " +
SUBJECTS_KEY_NAME + " text not null)");
sqLiteDatabase.execSQL("create table " + TABLE_GROUPS + "(" +
GROUPS_KEY_ID + " integer primary key, " +
GROUPS_KEY_NAME + " text not null)");
sqLiteDatabase.execSQL("create table " + TABLE_SUBJECTGROUP + "(" +
SUBJECTGROUP_KEY_ID + " integer primary key, " +
SUBJECTGROUP_KEY_SUBJECTID + " integer not null, " +
SUBJECTGROUP_KEY_GROUPID + " integer not null, " +
"foreign key(" + SUBJECTGROUP_KEY_SUBJECTID + ") references " + TABLE_SUBJECTS + "(" + SUBJECTS_KEY_ID + "), " +
"foreign key(" + SUBJECTGROUP_KEY_GROUPID + ") references " + TABLE_GROUPS + "(" + GROUPS_KEY_ID + "))");
sqLiteDatabase.execSQL("create table " + TABLE_STUDENTS + "(" +
STUDENTS_KEY_ID + " integer primary key, " +
STUDENTS_KEY_NAME + " text not null, " +
STUDENTS_KEY_GROUPID + " integer not null, " +
"foreign key(" + STUDENTS_KEY_GROUPID + ") references " + TABLE_GROUPS + "(" + GROUPS_KEY_ID + "))");
sqLiteDatabase.execSQL("create table " + TABLE_DATES + "(" +
DATES_KEY_ID + " integer primary key, " +
DATES_KEY_SUBJECTID + " integer not null, " +
DATES_KEY_DATE + " text not null)");
sqLiteDatabase.execSQL("create table " + TABLE_ATTENDANCE + "(" +
ATTENDANCE_KEY_ID + " integer primary key, " +
ATTENDANCE_KEY_STUDENTID + " integer not null, " +
ATTENDANCE_KEY_DATE + " text not null, " +
ATTENDANCE_KEY_ATTENDED + " integer not null, " +
ATTENDANCE_KEY_SUBJECTID + " integer not null)");
sqLiteDatabase.execSQL("create table " + TABLE_LABS + "(" +
LABS_KEY_ID + " integer primary key, " +
LABS_KEY_SUBJECTID + " integer not null, " +
LABS_KEY_DONE + " integer not null, " +
LABS_KEY_NAME + " text not null)");
}
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
sqLiteDatabase.execSQL("drop table if exists " + TABLE_SUBJECTS);
sqLiteDatabase.execSQL("drop table if exists " + TABLE_GROUPS);
sqLiteDatabase.execSQL("drop table if exists " + TABLE_STUDENTS);
sqLiteDatabase.execSQL("drop table if exists " + TABLE_SUBJECTGROUP);
sqLiteDatabase.execSQL("drop table if exists " + TABLE_DATES);
sqLiteDatabase.execSQL("drop table if exists " + TABLE_ATTENDANCE);
sqLiteDatabase.execSQL("drop table if exists " + TABLE_LABS);
onCreate(sqLiteDatabase);
}
}