多用户财务客户经理应用设计推荐

本文关键字:应用 客户 多用户 | 更新日期: 2023-09-27 18:37:19

喜欢这个网站 - 它在我的整个学习过程中都非常有用。 刚刚完成了四分之一的 C# 介绍,其中一个项目是设计一个财务"客户经理"应用程序,该应用程序可以保持余额并在提款和存款时更新它。 这个项目相当简单,我没有任何问题。 不幸的是,我的下一个季度不包括任何编程课程:(,所以我正在利用这段时间通过加强我的客户经理应用程序来扩展我的知识。

我想做的第一件事是启用多个用户。 到目前为止,我已经包含一个 CreateNewUser 类,该类禁止重复的用户名,检查新密码的特定格式要求,对其进行加盐和哈希处理,并将其保存到带有用户名(电子邮件地址)和自动递增的用户 ID 的"帐户"表中。 足够简单。

所以现在我陷入了困境:不确定什么是最佳实践。 我不认为用户应该与其他用户使用相同的表,所以我认为每个用户都应该有自己的表。 我是"太偏执"了,还是我的想法符合常见的编程安全实践? 事实是,可能没有人会使用这个应用程序,但我正在努力学习长大后我可以在现实世界中应用什么。

使用相同的表只需要使用匹配 userID 的查询加载数据集,所以这没什么大不了的。 如果我应该使用单独的表,那么我需要在创建新用户时动态创建一个新表,并且我打算只使用用户 ID 命名表,这将模拟现实世界中的帐号,我假设。

无论如何,我找不到另一个涵盖这个问题的问题,所以我想我会问你的想法。

谢谢

死神

多用户财务客户经理应用设计推荐

这样

想。如果您要保留这些表的物理示例,例如,使用笔记本。您是愿意拥有很多小笔记本还是一个可以参考的大笔记本?

只要您的代码

被编写为仅提取正确的数据(在本例中为匹配的用户ID),安全性就没什么大不了的,因为您的所有代码都将处理对数据的访问权限。您的数据库和代码也设置了正确的权限。

到目前为止,我已经包含一个禁止重复的 CreateNewUser 类 用户名,检查新密码的特定格式要求, 对其进行加盐和哈希处理,并将其保存到"帐户"表中,其中包含 用户名(电子邮件地址)和自动递增的用户 ID。 简单 足够。

已经很糟糕了。它应该是一个用户表 - 处理财务信息的应用程序中的帐户具有非常具体的财务含义,并且您可能希望每个用户有多个帐户和/或用户共享的帐户。

此外,除非你编写Powershell CmdLets(其中每个命令一个类是模式),否则CreateNewUser类与出去燃烧汽车一样糟糕。用户是一个类,某种存储库是可以的,但是 CREATE NEW 是类上的函数。它绝对不是一个完整的类 - 如果你在一个类中转动每个方法,你完全搞砸了面向对象的概念。

我不认为用户应该与其他用户使用相同的表,

又是一个彻头彻尾的错误。为什么不呢?适当地输入引用帐户和/或用户的适当字段,并且没问题。

那么我需要在创建新用户时动态创建一个新表,

你有没有想过你在这里做什么?维护方面,每个更改都意味着编写一个程序来找出存在哪些用户表,然后对其进行修改。窗外的工具支持。我曾经看到过这样写的应用程序 - 发票管理。它有一个发票明细表"每张发票"(每个发票都有一个发票表,按发票编号编码),因为程序员从来不了解数据库是什么。

我是"太偏执"了,还是我的想法符合常见的编程安全实践?

他们的路线是"你被解雇了,了解数据库是如何工作的"。

使用相同的表只需要使用匹配用户 ID 的查询加载数据集

;)那么数据集仍然存在吗?你有没有理由做编程考古学,遵循过去 30 年来在 Microsoft 的最糟糕的做法 - 而不是使用 ORM Microsoft已经提供了一段时间(Linq2SQL,实体框架),这将使你的应用程序很多 - 啊 - 更多 - 啊 - 面向对象?

我可以建议读一本像样的书吗?查找 Scott Ambler 的"构建有效的对象应用程序"?不,它不是为 C# 编写的 - 有趣的是,良好架构的概念 99% 与语言无关。

相关文章: