与开发人员谈论SqlDataAdaptervs的使用SqlDataReader并阅读此内容:https : //stackoverflow.com/questions/1676753/sqldataadapter-vs-sqldatareader
几乎没有解释从 切换SqlDataAdapter到对 SQL Server 的影响SqlDataReader。
我知道SqlDataReader可能会增加连接对 SQL Server 开放的时间长度,这在有效使用池连接时肯定是一个问题。
除此之外,使用SqlDataReader而不是对 SQL Server 有什么影响SqlDataAdapter?有没有人观察到此更改对 SQL Server 的影响?
sql-server ado.net application-design data-tier-application sql-server-2016
我正在创建一个用于管理事件的 Web 服务。该服务将拥有列在一个名为“用户”的数据库中的用户。它还具有在另一个称为事件的数据库中列出的事件。
每个事件都会有一个受邀用户列表,该列表的长度是可变的。每个受邀用户都有各种属性,包括他们是否接受了邀请,以及他们是否参加了。
我打算使用 SQL 数据库;SQLite、MySQL 或 PostgreSQL。但是,如果有人建议,这可以改变。
我的问题是我应该如何存储每个事件的受邀用户信息?要求是:
我可以同样轻松地查找受邀参加活动的用户和邀请用户参加的活动。
该解决方案是可扩展的,即如果我最终拥有数百万用户和数百万事件,那么该方法可以应对。请注意,每个活动只会有少量客人,例如 2-1000。
该解决方案在访问时间、计算资源和存储要求方面是高效的。
我想到的一些选择:
对于每个事件来宾列表,将用户 ID 和其他属性作为 blob 或每个属性的 blob 存储在事件数据库中。这里的问题是客人的数量各不相同。固定长度意味着浪费空间或限制最大来宾长度大小。此外,这种方法不允许快速查找用户受邀参加的活动。
对于每个用户,将他们受邀参加的事件列表以及其他属性存储为用户数据库中的 blob。同样,问题在于事件的数量不同,并且这种方法不允许快速查找受邀参加事件的用户。
1 和 2 的组合。这引入了冗余,以及在保持两个数据库同步时发生错误的可能性。
每个事件用户列表的单独 SQLite 数据库。我怀疑这在存储和计算上都非常低效。此外,它不允许轻松计算邀请用户的事件。
另一个存储用户事件项目的数据库,每个用户被邀请参加每个事件。这必须允许按用户或事件进行快速过滤。我是数据库的新手,所以不知道这是否可以在 SQL 数据库中实现,或者需要其他类型,如果可以,是什么。
非常感谢您对这些选项的评论以及任何进一步的建议。
对于我的系统,学生需要通过填写注册表(个人、联系方式和课程详细信息;还有用户名和密码)来创建一个用户帐户。
我需要通过一个表单收集注册数据,并将收集到的数据插入到我数据库中的两个相关表中(student表中的所有学生详细信息和users)。
我如何最好地在 php 中编码?

我目前正在构建一个包含许多用户、两个角色和两个组的应用程序。从逻辑上讲,我们希望用户能够成为两个组内其他用户的管理员。
用户表
UserID varchar PK
DisplayName
Email
Role int FK `role`.`RoleID`
DATA [jschmo,Joe Schmo,joe@schmo.com,1]
Run Code Online (Sandbox Code Playgroud)
角色表
RoleID int PK AI
RoleName varchar
DATA [1=Master,2=Admin,3=User]
Run Code Online (Sandbox Code Playgroud)
组表
GroupID int PK AI
GroupName
DATA [1=Marketing,2=Infrastructure]
Run Code Online (Sandbox Code Playgroud)
用户可能是两个组的管理员。我没有看到多选外键的选项,但据我了解,在列中使用逗号分隔的列表是一个坏主意,我应该使用多条记录,但我不喜欢拥有多条记录的想法对于每个用户。
问:我如何跟踪用户是哪些组的管理员?