c# - 如何将单用户应用程序制作成多用户应用程序?

标签 c# database

几年前,我创建了一个简单的应用程序来跟踪我的日常状态。没什么特别的,你只需添加一行,它会显示日期,我会输入开始时间、结束时间和我所做的事情。每个人都笑了,但我坚持了 3 年。现在老板看到我是多么“有条理”(这只是一个长电子表格 View )并希望我为团队的其他成员扩展应用程序。他还想查看我们拥有的 ListView ,因此这需要以某种方式将其设为共享数据库。我现在正在使用 SQlite,因为它都在我的机器上,所以我该如何扩展这个应用程序。

我正在寻找想法,欢迎大家。

更新:我想我的问题更多是关于拥有数据库服务器而不是我现在拥有的嵌入式数据库。我不需要管理并发等吗?

最佳答案

想法:

  • 将用户身份编号引入数据库记录(或表示其唯一用户名的字符串),以标记他们所属的行。

  • 添加一个登录屏幕,如果每个人都相互信任而不需要密码 - 只需选择名称。

  • 如果您有业务对象,请在其上放置一个 .UserId 属性以跟踪当前用户。

  • 当用户“登录”时,跟踪他们的用户 ID 以使用 WHERE userid = 5

  • 过滤数据库数据

主要是您的程序结构保持不变,并且您引入了跟踪当前用户的用户 ID 并根据该用户 ID 适当过滤所有其他内容的新要求,以强制执行适当的边界。

更新:

如果你的旧数据库表看起来像

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

关于c# - 如何将单用户应用程序制作成多用户应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3107254/

相关文章:

c# - Windows 窗体 - 以透明为背景的 PNG

C# 打印问题 (RichTextBox)

这个 powershell 片段的 C# 等价物

c# - 如何告诉 GridView 在 CellClick 上打开超链接?

java - 启动 Activity 并上传数据库时出错

c# - 来自 C# 进程类的无效操作异常

android - 如何在数据库中存储格式化文本

sql-server - 检索 SQL 代理作业的特定错误

python - 也可以通过网络同步的小型 "embeddable"数据库?

database - Postgresql 函数中的列命名