2017-09-24 3 views
1

Je crée un rappel temporel dans lequel l'utilisateur se connecte d'abord, puis configure le rappel de l'heure, mais pour chaque compte créé, la même liste de rappel s'affiche dans la vue de liste des rappels. Comment puis-je créer une liste unique pour chaque compte? Voici le code de base de données:Je souhaite afficher une liste unique pour tous les utilisateurs qui se sont connectés. Comment puis-je faire cela?

private static final String DATABASE_NAME = "UserManager.db"; 

// User table name 
private static final String TABLE_USER = "user"; 

// User Table Columns names 
private static final String COLUMN_USER_ID = "user_id"; 
private static final String COLUMN_USER_NAME = "user_name"; 
private static final String COLUMN_USER_EMAIL = "user_email"; 
private static final String COLUMN_USER_PASSWORD = "user_password"; 


// Table name 
private static final String TABLE_REMINDERS = "ReminderTable"; 

// Table Columns names 
private static final String KEY_ID = "id"; 
private static final String KEY_TITLE = "title"; 
private static final String KEY_DATE = "date"; 
private static final String KEY_TIME = "time"; 
private static final String KEY_REPEAT = "repeat"; 
private static final String KEY_REPEAT_NO = "repeat_no"; 
private static final String KEY_REPEAT_TYPE = "repeat_type"; 
private static final String KEY_ACTIVE = "active"; 


// create table sql query 
private String CREATE_USER_TABLE = "CREATE TABLE " + TABLE_USER + "(" 
     + COLUMN_USER_ID + " INTEGER PRIMARY KEY AUTOINCREMENT," + COLUMN_USER_NAME + " TEXT," 
     + COLUMN_USER_EMAIL + " TEXT," + COLUMN_USER_PASSWORD + " TEXT" + ")"; 

// drop table sql query 
private String DROP_USER_TABLE = "DROP TABLE IF EXISTS " + TABLE_USER; 

/** 
* Constructor 
* 
* @param context 
*/ 
public DatabaseHelper(Context context) { 
    super(context, DATABASE_NAME, null, DATABASE_VERSION); 
} 

@Override 
public void onCreate(SQLiteDatabase db) { 
    db.execSQL(CREATE_USER_TABLE); 
    String CREATE_REMINDERS_TABLE = "CREATE TABLE " + TABLE_REMINDERS + 
      "(" 
      + KEY_ID + " INTEGER PRIMARY KEY," 
      + KEY_TITLE + " TEXT," 
      + KEY_DATE + " TEXT," 
      + KEY_TIME + " INTEGER," 
      + KEY_REPEAT + " BOOLEAN," 
      + KEY_REPEAT_NO + " INTEGER," 
      + KEY_REPEAT_TYPE + " TEXT," 
      + KEY_ACTIVE + " BOOLEAN" + ")"; 
    db.execSQL(CREATE_REMINDERS_TABLE); 
} 

Répondre

0

Ajouter un champ de user_id sur le ReminderTable, et réglez l'user_id pour chaque rappel lors de sa création. Vous pouvez ensuite récupérer des rappels pour chaque utilisateur en utilisant une clause SELECT WHERE.

0

Ok, j'ai votre question. Si vous souhaitez avoir une liste de rappel unique, enregistrez le rappel avec un identifiant unique, pas l'identifiant de rappel qui est créé après chaque sauvegarde dans une base de données, mais un ID associé uniquement à un compte particulier.

Le problème avec votre base de données est qu'elle enregistre le rappel mais n'a aucun lien unique qui peut indiquer que ce rappel appartient à ce compte. Donc, vous devez juste ajouter un autre paramètre dans votre ReminderTable qui stocke l'email d'un utilisateur qui reste, de sorte que chaque fois qu'il veut voir son reste sauvegardé, il vous suffit d'aller chercher la liste avec un rappel qui a l'adresse email celui de l'utilisateur qui clique pour voir son reste.

Désolé pour mon anglais. J'espère que vous avez ma réponse. S'il vous plaît commenter pour les requêtes.