用于“用户日志”主键的Android SQLite“用户”表主键

时间:2014-02-25 15:47:32

标签: android sqlite

我正在为'user'表使用auto_increment主键。我的问题是,我可以使用相同的用户ID(主键)作为“用户日志”表的主键吗?我不应该这样做有什么主要原因吗?

我对实施的想法: 要做到这一点,我会让用户创建一个条目(名称,电子邮件传递等),一旦完成,通过从“用户”表中获取密钥并将其传递到“用户日志”条目来创建“用户日志”创建方法作为外键?或者此时它仍然会被称为主键?

一个简单的代码示例会很棒。这就是我所拥有的:

// Create the table
public void onCreate(SQLiteDatabase db) {
    // SQL statement to create book table
    String CREATE_USER_TABLE = "CREATE TABLE userLog ( " +
            "userID INTEGER PRIMARY KEY, " + 
            "date TEXT )";
    // create directory table
    db.execSQL(CREATE_USERLOG_TABLE);
}
//Add entry to the table using value from user
public void addEntry(UserLogEntry entry, UserEntry userEntry){
    Log.d("addEntry", entry.toString());
    // 1. get reference to writable DB
    SQLiteDatabase db = this.getWritableDatabase();

    // 2. create ContentValues to add key "column"/value
    ContentValues values = new ContentValues();
    values.put(KEY_USERID, userEntry.getUserID()); 
    values.put(KEY_DATE, entry.getDate()); 

    // 3. insert
    db.insert(TABLE_USERLOG, // table
            null, //nullColumnHack
            values); // key/value -> keys = column names/ values = column values

    // 4. close
    db.close(); 
}

因为CL指出了这一点,所以这是行不通的。我需要一个唯一的密钥,并将用户ID添加为新列。我只是在创建userslog时从users表中提取userid,这应解决该问题。

0 个答案:

没有答案