Android 我可以通过从另一个类调用方法来动态地向sqlite表添加新列吗?

Android 我可以通过从另一个类调用方法来动态地向sqlite表添加新列吗?,android,android-sqlite,dynamically-generated,alter-table,android-database,Android,Android Sqlite,Dynamically Generated,Alter Table,Android Database,我在数据库中有一个表,这个表的每个记录都需要存储 多个字符串,我不知道有多少个字符串,因为它是在运行时决定的 我想在数据库表中动态添加图像uri,用户 在我的应用程序中动态添加他想要的图像,因此我需要保存 对他们来说,什么是正确的做法呢 我正在尝试这样的方法 我为此使用了以下方法(未工作):- 首先,我在表中添加新列:- public Cursor addColumn(String name){ db=dbhelper.getWritableDatabase(); return

我在数据库中有一个表,这个表的每个记录都需要存储 多个字符串,我不知道有多少个字符串,因为它是在运行时决定的

我想在数据库表中动态添加图像uri,用户 在我的应用程序中动态添加他想要的图像,因此我需要保存 对他们来说,什么是正确的做法呢

我正在尝试这样的方法

我为此使用了以下方法(未工作):-

首先,我在表中添加新列:-

public Cursor addColumn(String name){
    db=dbhelper.getWritableDatabase();
    return  db.rawQuery("alter table info add column " + name + " text", null);
}
然后将uri插入此文件中

public Boolean setUri(String columnName,String uri) {
    ContentValues cv= new ContentValues();
    cv.put(columnName,uri);
    SQLiteDatabase db =dbhelper.getWritableDatabase();
    long id=db.insert("info",null,cv);
    if(id>-1)
        return true;
    else
        return false;
}
上述方法正确吗?

我还搜索了以下代码:-

private static final String ALTER = "ALTER TABLE user_table ADD user_street1 TEXT";

     @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) 
    {
        db.execSQL(ALTER);
    }
我是否可以动态调用onUpgrade()方法并添加新列,或者以任何其他方式执行此操作


提前感谢:)

表中有任意数量的列是非常糟糕的。您应该改为使用第二个表,其中外键引用第一个表中某行的ID

table user
_id     username    ...
------------------------
1       abc
2       xyz

table photoInfo
userId      photoUri
-------------------------------
1           /path/to/image1.jpg
1           /path/to/image2.jpg
2           /path/to/image3.jpg
1           /path/to/image4.jpg

若要为特定用户显示照片,请使用加入。

感谢@Karakuri的建议:),您能否在回答中添加演示代码以正确解释,这对我很有用:)实际上,这是一个笔记本应用程序,用户可以在其中添加图像或文本或两者,如果用户id也在运行时与图像一起创建,Dynamicly我正在创建新记录和图像表记录,可能吗?请同时查看此问题非常感谢亲爱的,您的外键概念肯定对我有用,请您查看我的另一个问题,这是我在应用程序中面临的最大问题Let us。
table user
_id     username    ...
------------------------
1       abc
2       xyz

table photoInfo
userId      photoUri
-------------------------------
1           /path/to/image1.jpg
1           /path/to/image2.jpg
2           /path/to/image3.jpg
1           /path/to/image4.jpg