Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android SQLite-使用多个用户管理单个数据库_Android_Sqlite - Fatal编程技术网

android SQLite-使用多个用户管理单个数据库

android SQLite-使用多个用户管理单个数据库,android,sqlite,Android,Sqlite,我正在创建一个应用程序,允许用户登录并从服务器检索有关其帐户的一些信息。这些信息被插入到SQLite数据库中,然后用户可以对其设置其他首选项(我使用SharedReferences) 现在我想扩展应用程序,让更多的用户登录。 问题是我不知道如何准确地管理多用户数据库,事实上: 如果我在注销后保留db,并使用另一个帐户登录,我会找到与前一个用户相关的信息 如果我不保留数据库,并在注销后将其删除,我将错过用户设置的所有首选项 我怎样才能解决这个问题?谢谢。这可以通过多种方式完成 1.创建用户id

我正在创建一个应用程序,允许用户登录并从服务器检索有关其帐户的一些信息。这些信息被插入到SQLite数据库中,然后用户可以对其设置其他首选项(我使用SharedReferences)

现在我想扩展应用程序,让更多的用户登录。 问题是我不知道如何准确地管理多用户数据库,事实上:

  • 如果我在注销后保留db,并使用另一个帐户登录,我会找到与前一个用户相关的信息
  • 如果我不保留数据库,并在注销后将其删除,我将错过用户设置的所有首选项

我怎样才能解决这个问题?谢谢。

这可以通过多种方式完成 1.创建用户id表,并使用外键将其链接到其他表。 另一种方法是 2.为每个用户创建新的数据库。因此,您的数据库名称将具有用户名。如果用户名更改,则数据库更改


使用第二种方法,您的代码更改将是最小的。

第一种方法是我曾经想过的方法!第二种方法可能更简单,但如果帐户太多,应用程序可能会更沉重,或者我错了?第二种方法是,一旦用户注销并再次登录,您必须确保在DB和应用程序(其中包含从DB中提取的数据)中进行干净切换。第一种方法是干净的,但它需要认真研究数据库设计。由于数据库设计正在改变,你也必须注意应用程序的升级。我的想法是:如果我在用户注销之前将附加首选项(通过SharedReferences保存)保存在一个文件(例如xml)中,然后在用户下次登录时,我通过用户名和密码检索它们?