ASP.NET让当前用户创建新的联盟数据库[已关闭]

bnl4lu3b  于 2023-02-10  发布在  .NET
关注(0)|答案(1)|浏览(100)

已关闭。此问题为opinion-based。当前不接受答案。
**想要改进此问题吗?**请更新此问题,以便editing this post可以用事实和引文来回答。

昨天关门了。
Improve this question
我自学ASP.NET作为一个业余爱好项目,我对编程有点陌生。我在大学里学过一些编程课程,我在一家科技公司工作(尽管我不做任何编程)。
话虽如此,我很难找到如何让当前登录的用户启动一个新数据库的信息。我想做的是给予用户能够通过填写带有一些联盟格式选项的表单来启动自己的体育联盟,然后将朋友添加到他们的联盟中。
对于我想做的事情,我认为最好的处理方法是使用SQL数据库,但我愿意接受建议。它是否像调用createDB类型的函数一样简单,该函数将以与手动编码相同的方式创建数据库,但要传递沿着?
Simlar的帖子有警告SQL注入攻击的答案,这显然是我不想受到攻击的东西。
任何帮助/提示将不胜感激!
我还没有编码任何东西。还在做我的研究,我只是想在前进的过程中找出最佳实践。

6l7fqoea

6l7fqoea1#

正如评论中提到的,你不创建一个新的数据库--非常罕见。更糟糕的是,你怎么能为不同的用户处理不同的连接呢?
换句话说,网站有一船的代码,而且都是在一个数据库上工作和运行的,现在有了两个用户,这样的代码就真实的的一团糟了。
我的意思是,想想一个会计软件包。我们创建一个新公司,然后可以为那个客户添加定价和发票。
但是,为了向会计软件包中添加另一个客户,我们并不创建一个全新的数据库,而是简单地添加更多的记录-在本例中是“新公司”。
再想想当你需要添加一些新的列或者对数据库进行修改时会发生什么。你现在要管理一个数据库的50个副本吗?正如你所看到的,这很快就会变得非常不切实际。
那么,假设一个登录的用户可以添加一个新项目,或者其他什么?
那么在该数据库表中就有一列:

tblProjects:

project Name: text
projectDate: datetime

User_id: integer   <--- this project belongs to this user.

因此,现在,当用户登录时,您将(可以)显示他们的项目列表,并且您通过登录ID(user_id)过滤该表,因此他们只能看到/获得他们自己的项目。
当然,您可以自由地向上面的项目添加/拥有子表,这只是标准的数据库内容。(换句话说,您可以添加一些项目细节,它们将链接到父表“tblProjects”。
实际上只有tblProjects需要“一个”user_id过滤器,但是所有其他表都附加到该项目。
因此,在您的示例中,用户可能希望创建一个新联赛,那么tblMyLeagues将是您现在所拥有的,但添加了一个User_ID列,该列表示哪个用户创建了该记录。

相关问题