因此,表示有两个表,表1和表2.表1有两列 - 活动和测量。活动栏中有3个项目 - 足球,足球和篮球。 (现在让我们不要考虑存储测量列的内容。)
现在,我想要做的是,在另一个表中,表2,我希望在Activity列中有三个项目,作为表2的列。这里是我的布局想让它感觉像 -
https://www.dropbox.com/sh/6ip5ipe8r4y25bx/AACp43UfpxI21wGg4y6nylUEa?dl=0
抱歉,对于保管箱链接,显然我无法在没有10个或更多声誉的情况下发布图片。
我对Android Studio相当陌生,所以我在实施这个想法时遇到了困难,请告诉我是否有任何方法/想法来实现它!谢谢!
答案 0 :(得分:1)
我认为最好有一个外键关系,而不是每次都创建一个新列,因为如果前一列不能为空,添加新列时会遇到问题。对于你的情况,我会创建一个像此
项目表
活动表
数据表
我将使用Item表的Id作为Activity Table和Data Table的外键,因此每次决定放置新项时都不需要创建新列。但是,如果您不想使用我推荐的方法,您也可以尝试使用sql更改数据库表。阅读this
答案 1 :(得分:0)
从你的问题来看,你很难理解你是否只想创建你所描述的结构:
String QUERY_CREATE_TABLE_1 = "CREATE TABLE Table1 + ( Activity, Measurement )";
String QUERY_CREATE_TABLE_2 = "CREATE TABLE Table2 + ( Football, Soccer, Basketball )";
database.execSQL(QUERY_CREATE_TABLE_1);
database.execSQL(QUERY_CREATE_TABLE_2);
或者如果您需要动态逻辑,那么最好使用不同的方法。
对于在Table1中插入的每一行,创建一个具有活动名称的新表:
//called when database first created
public void createTable1() {
String QUERY_CREATE_TABLE_1 = "CREATE TABLE Table1 + ( Activity, Measurement )";
database.execSQL(QUERY_CREATE_TABLE_1);
}
public void addNewActivity(String activity, String measurement) {
//Add new activity to Table 1
ContentValues valuesTable1 = new ContentValues();
valuesTable1.put("Activity", activity);
valuesTable1.put("Measurement", measurement);
database.insertOrThrow(TablesInfo.TABLE_NAME, null, valuesTablesInfo);
//create A new Table with activity name
String QUERY_CREATE_TABLE = "CREATE TABLE " + activity + " ( Name )";
database.execSQL(QUERY_CREATE_TABLE);
}