客户要求我为在线学习网站添加简单间隔重复算法(SRS).但在把自己投入其中之前,我想与社区讨论.
基本上,该站点向用户询问一堆问题(通过自动选择来自数据库的100个总问题中的10个),并且用户给出正确或不正确的答案.然后将用户结果存储在数据库中,例如:
userid questionid correctlyanswered dateanswered
1 123 0 (no) 2010-01-01 10:00
1 124 1 (yes) 2010-01-01 11:00
1 125 1 (yes) 2010-01-01 12:00
Run Code Online (Sandbox Code Playgroud)
现在,为了最大化用户学习所有答案的能力,我应该能够应用SRS算法,以便用户下次参加测验时,会更频繁地接收错误答案的问题; 比正确回答的问题.此外,以前回答错误但最近经常回答正确的问题应该不经常发生.
有没有人之前实现过这样的东西?任何提示或建议?
Theese是我发现的最好的链接:
为什么以下(最后两个)语句返回不同的结果.我几乎100%确定他们'用'来返回相同的结果(有人回忆起过去在SQL Server 6/2000中的情况吗?).
CREATE TABLE [dbo].[color](
[colorid] [int] NOT NULL,
[title] [varchar](255) NOT NULL
) ON [PRIMARY]
INSERT color SELECT 1,'Red' UNION ALL SELECT 2,'Green' UNION ALL SELECT 3,'Blue'
CREATE TABLE [dbo].[membercolor](
[memberid] [int] NOT NULL,
[colorid] [int] NOT NULL
) ON [PRIMARY]
INSERT membercolor SELECT 10,1 UNION ALL SELECT 10,2 UNION ALL SELECT 10,3 UNION ALL SELECT 11,1 UNION ALL SELECT 11,2 UNION ALL SELECT 12,1
SELECT * FROM color
SELECT * FROM membercolor
-- red, green & blue …Run Code Online (Sandbox Code Playgroud) 这真的是一个关于SSL的问题,而Socket-trace就在下面,所以即使你以前从未使用过MySql,也不要害羞继续阅读.无论如何,我们试图通过SSL(使用客户端.PFX证书)使用MySqlConnection(.NET 2.0和4.0,版本无关紧要)连接到MySql服务器,如下所示:
using (MySqlConnection con = new MySqlConnection(@"server=xxx.yyy.zzz.uuu;database=whopper;user=Username;password=Secret;Certificate Store Location=CurrentUser;Pooling=false;SSL Mode=Required;Certificate Thumbprint=NNNN;Keepalive=60")) {
con.Open();
}
Run Code Online (Sandbox Code Playgroud)
证书安装在个人存储中,这一切都适用于某些机器; 但不是其他人.堆栈跟踪:
System.IO.IOException: Received an unexpected EOF or 0 bytes from the transport stream.
at System.Net.FixedSizeReader.ReadPacket(Byte[] buffer, Int32 offset, Int32 count)
at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest …Run Code Online (Sandbox Code Playgroud) 我正在使用 Microsoft SQL Server 2016 进行开发,目前在向数据库添加行级安全性 (RLS) 时面临性能大幅下降的问题。我已经认为我已经找到了问题所在,即查询优化器先生不太喜欢我的非确定性过滤功能。我的问题是,是否有人有 RLS、过滤功能和优化此类案例的经验。- 索引、更巧妙的RLS过滤功能等可以提高性能吗?
我使用 RLS 根据过滤器函数过滤查询中返回/可用的行。下面我设置了一个函数来根据 SESSION_CONTEXT() 函数中的变量过滤行。因此,这很像向 WHERE 子句添加过滤器(除了它不会优化相同的内容,而且这更容易应用于现有的大型应用程序,因为它是在数据库级别完成的)。
请注意,下面的脚本和测试是实际情况的非常简单的版本,但它确实表明应用过滤时性能会下降。在脚本中,我还包含(注释掉)了一些我已经尝试过的东西。
要进行设置,首先运行下面的脚本,这将创建数据库、示例表、过滤功能和安全策略。
-- note: this creates the test database 'rlstest'. when you're tired of this, just drop it.
-- initalize
SET NOCOUNT ON
GO
-- create database
CREATE DATABASE rlstest
GO
-- set database
USE rlstest
GO
-- create test table 'member'
CREATE TABLE dbo.member (
memberid INT NOT NULL IDENTITY,
ownercompanyid INT NULL
)
GO
-- create some sample …Run Code Online (Sandbox Code Playgroud) sql ×3
sql-server ×2
.net ×1
algorithm ×1
certificate ×1
mysql ×1
ssl ×1
t-sql ×1
wireshark ×1