几年前,我创建了一个简单的应用程序来跟踪我的日常状态。没什么好看的,你只需要添加一行,它会在日期中加入,我会把开始时间,结束时间和我所做的事情放在一起。每个人都笑了,但我坚持了3年。现在,老板看到了我的“组织”程度(这只是一个很长的电子表格视图),并希望我为团队的其他成员扩展应用程序。他还希望看到我们的列表视图,所以这需要以某种方式使它成为共享数据库。我现在正在使用SQlite,因为它全部都在我的机器上,所以我该如何扩展这个应用程序。
我正在寻找想法,欢迎所有人。
更新:我想我的问题更多的是关于拥有数据库服务器而不是我现在拥有的嵌入式数据库。我不需要管理并发等吗?
答案 0 :(得分:3)
思路:
向db记录(或表示其唯一用户名的字符串)引入用户标识号,以标记他们所属的行。
添加一个登录界面,如果每个人都相互信任而不需要密码 - 只需选择名称。
如果您有业务对象,请在其上放置.UserId属性以跟踪当前用户。
当用户“登录”时,跟踪其用户ID以使用WHERE userid = 5
主要是程序的结构保持不变,并且您引入了跟踪当前用户的用户ID并根据该用户ID适当地过滤其他所有内容以强制执行适当边界的新要求。
更新
如果旧的db表看起来像
TaskId | Start Time | Length | Description |
1 10:45 Feb 3 20 min finish the code
2 10:45 Feb 5 5 m delete comments
3 10:45 jan 8 2 hr meeting
然后我的想法提出了一个附加'usreid'列的内容,如:
Userid | TaskId | Start Time | Length | Description |
10 | 1 10:45 Feb 3 20 min finish the code
15 | 2 10:45 Feb 5 5 m delete comments
30 | 3 10:45 jan 8 2 hr meeting
你可能有一个支持用户表,如:
UserId | Username | Full name
10 bob1 | Bob Smith
15 mnmn | Guest user
30 sarah55 | Sarah Baker
答案 1 :(得分:0)
从长远来看,你应该做what jdk suggested,但与此同时,作为权宜之计的解决方案,你可以为每个用户建立一个单独的SQLite数据库。
答案 2 :(得分:0)
以下是我要采取的步骤:
uniqueidentifier
或IDENTITY int
列。HTH
答案 3 :(得分:0)
您需要将应用程序移动到集中式数据库服务器。优选地是完整的数据库。这将为您处理并发。