How can I create a one-to-many relationship in Android, how would it be the best way? I have this kind BDPlan
, a plan has 1 to many Activities and I would like to know how to represent this relationship between tables
public class BDPlan extends SQLiteOpenHelper{
Inicio inicio;
public static final String DB_NOMBRE="planes.plan";
public static int DB_SCHEME_VERSION=1;
public static final String NOMBRE_TABLA="plan";
public static final String CN_ID="p_id";
public static final String CN_DENOMINACION="p_denominacion";
public static final String CN_INDIVIDUAL="p_individual";
public static final String CN_MENSUAL="p_mensual";
public static final String CN_ANUAL="p_anual";
public static final String CN_FECHAINICIO="p_fechainicio";
public static final String CN_FECHAFIN="p_fechafin";
public static final String CN_DESCRIPCION="p_descripcion";
private Context context;
public BDPlan(Context context) {
super(context, DB_NOMBRE, null, DB_SCHEME_VERSION);
this.context = context;
}
@Override
public void onCreate(SQLiteDatabase db) {
String queryCrearTabla = "create table " + NOMBRE_TABLA + " ("
+ CN_ID + " integer PRIMARY KEY AUTOINCREMENT, "
+ CN_DENOMINACION + " text, "
+ CN_INDIVIDUAL+ " INTEGER, "
+ CN_MENSUAL + " INTEGER, "
+ CN_ANUAL + " INTEGER, "
+ CN_FECHAINICIO + " text, "
+ CN_FECHAFIN + " text, "
+ CN_DESCRIPCION + " text"
+ ");";
db.execSQL(queryCrearTabla);
}
@Override
public void onUpgrade(SQLiteDatabase db, int i, int i1) {
db.execSQL("DROP TABLE IF EXISTS " + DB_NOMBRE);
onCreate(db);
}
public ArrayList<Plan> getPlanList(){
ArrayList<Plan> plans = new ArrayList<>();
String query = "Select * From " + NOMBRE_TABLA;
SQLiteDatabase db = this.getWritableDatabase();
Cursor c =db.rawQuery(query, null);
while (c.moveToNext()){
Plan plan = new Plan();
plan.setIdplan(c.getString(0));
plan.setDenominacionplan(c.getString(1));
plan.setIndividual(c.getInt(2));
plan.setMensual(c.getInt(3));
plan.setAnual(c.getInt(4));
plan.setFechainicio(c.getString(5));
plan.setFechafin(c.getString(6));
plan.setDescripcionplan(c.getString(7));
plans.add(plan);
}
db.close();
return plans;
}
public ArrayList<Plan> getPlanListFiltro (String newText){
ArrayList<Plan> plans = new ArrayList<>();
String query = "Select * From " + NOMBRE_TABLA;
SQLiteDatabase db = this.getWritableDatabase();
Cursor c =db.rawQuery(query, null);
while (c.moveToNext()){
Plan plan = new Plan();
plan.setIdplan(c.getString(0));
plan.setDenominacionplan(c.getString(1));
plan.setIndividual(c.getInt(2));
plan.setMensual(c.getInt(3));
plan.setAnual(c.getInt(4));
plan.setFechainicio(c.getString(5));
plan.setFechafin(c.getString(6));
plan.setDescripcionplan(c.getString(7));
if(plan.getDenominacionplan().contains(newText)){
plans.add(plan);
}
}
db.close();
return plans;
}
public void InsertaP(ContentValues contentValues){
SQLiteDatabase db = this.getWritableDatabase();
db.insert(NOMBRE_TABLA,null,contentValues);
db.close();
}
public void ModificarP(String p_id,String p_denominacion, int p_individual, int p_mensual, int p_anual, String p_fechainicio, String p_fechafin, String p_descripcion){
ContentValues contentValues = new ContentValues();
contentValues.put(CN_DENOMINACION, p_denominacion);
if(p_individual == 1){
contentValues.put(CN_INDIVIDUAL, "1");
}else {
contentValues.put(CN_INDIVIDUAL, "0");
}
if(p_mensual == 1){
contentValues.put(CN_MENSUAL, "1");
}else {
contentValues.put(CN_MENSUAL, "0");
}
if(p_anual == 1){
contentValues.put(CN_ANUAL, "1");
}else {
contentValues.put(CN_ANUAL, "0");
}
contentValues.put(CN_FECHAINICIO, p_fechainicio);
contentValues.put(CN_FECHAFIN, p_fechafin);
contentValues.put(CN_DESCRIPCION, p_descripcion);
SQLiteDatabase db = this.getWritableDatabase();
String [] args= new String[]{p_id};
db.update(NOMBRE_TABLA,contentValues,"p_id=?",args);
db.close();
}
public void EliminarP(String p_id){
SQLiteDatabase db = this.getWritableDatabase();
String [] args= new String[]{p_id};
db.delete(NOMBRE_TABLA,"p_id=?",args);
db.close();
}
}
'