我想为每个已登录的用户显示唯一列表。我该怎么做?

时间:2017-09-24 20:34:19

标签: java android android-sqlite reminders

我正在创建一个时间提醒,其中用户首先登录然后设置时间提醒,但是对于正在创建的每个帐户,相同的提醒列表将显示在提醒列表视图中。如何为每个帐户创建唯一列表? 这是数据库代码:

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);
}

2 个答案:

答案 0 :(得分:0)

user_id上添加ReminderTable字段,并在创建时为每个提醒设置user_id。然后,您可以使用SELECT WHERE子句检索每个用户的提醒。

答案 1 :(得分:0)

好的,我收到了你的问题。

如果您想拥有唯一提醒列表,请使用一些唯一ID保存提醒,而不是在每个提醒保存在数据库中后创建的提醒ID,而是与特定帐户唯一关联的ID。

您的数据库存在的问题是它正在保存提醒,但没有任何唯一的链接可以说此提醒属于此帐户。

所以,你必须在你的ReminderTable中添加另一个参数来存储设置余数的用户的电子邮件,这样每当他想要查看他保存的剩余部分时,你只需要提取具有与之相同的电子邮件地址的提醒的列表。点击查看其余部分的用户。

抱歉我的英文。希望你能得到答案。请评论查询。