SQL Table IdentityServer4 PersistedGrantStore 的架构

SQL Table Schema for IdentityServer4 PersistedGrantStore

我正在为 IdentityServer 4 编写 PersistedGrantStore,并希望持久保存到 SQL 服务器中的 Table。

PersistedGrant 有一个 string 类型的键,这不是一个很好的选择,但我会使用二进制排序规则来补偿。 nvarchar(max) 只要我能扮演 DBA 角色,就不能使用主键。

谁能告诉我们这个字段和所有其他字符串字段应该有多长?

事先知道我们是否应该为以 Id 结尾的任何字段添加索引也很好。

table 创建 SQL 语句是:

USE [IdentityServer]
GO

/****** Object:  Table [dbo].[PersistedGrants]    Script Date: 2021-12-21 21:17:39 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[PersistedGrants](
    [Key] [nvarchar](200) NOT NULL,
    [Type] [nvarchar](50) NOT NULL,
    [SubjectId] [nvarchar](200) NULL,
    [SessionId] [nvarchar](100) NULL,
    [ClientId] [nvarchar](200) NOT NULL,
    [Description] [nvarchar](200) NULL,
    [CreationTime] [datetime2](7) NOT NULL,
    [Expiration] [datetime2](7) NULL,
    [ConsumedTime] [datetime2](7) NULL,
    [Data] [nvarchar](max) NOT NULL,
 CONSTRAINT [PK_PersistedGrants] PRIMARY KEY CLUSTERED 
(
    [Key] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO

您可以找到所有 table 的 SQL 代码 here