Android 安卓SQLite';用户';表主键为';用户日志';主键

Android 安卓SQLite';用户';表主键为';用户日志';主键,android,sqlite,Android,Sqlite,我正在为“用户”表使用自动递增主键。我的问题是,我可以使用相同的用户ID(主键)作为“用户日志”表的主键吗?我不应该这样做有什么主要原因吗 我对实施的想法: 要做到这一点,我会让用户创建一个条目(姓名、电子邮件通行证等),完成后,通过从“用户”表中获取密钥并将其作为外键传递到“用户日志”条目创建方法来创建“用户日志”?或者在这一点上它仍然被称为主键 一个简单的代码示例会很好。以下是我所拥有的: // Create the table public void onCreate(SQLiteData

我正在为“用户”表使用自动递增主键。我的问题是,我可以使用相同的用户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指出了这一点,所以这是行不通的。我需要一个唯一的键,并将userid添加为一个新列。在创建userslog时,我将从users表中提取userid,这将解决这个问题

User
userLog
表中的记录之间是否存在1:1的关系,或者每个用户可以有多个日志?每个用户可以有多个日志。谢谢你指出这一点。我没有想到这一点。好的扑救:)