ContentType—动态数据结构存储C#和#x2B;SQL Server

ContentType—动态数据结构存储C#和#x2B;SQL Server,c#,sql,sql-server,C#,Sql,Sql Server,我有一个任务-我需要以内容类型的形式在数据库中存储动态内容 ContentTypes基本上是一个键值集合。我需要将这些数据存储在数据库中,并确保内容类型可以查询和索引。我无法为每种内容类型创建一个表,因为它们可以在运行时更改,这将意味着删除表并丢失数据 有人知道这方面的好方法吗?我需要提到的是,DB最终将包含约100万种内容类型。最终,.NET应用程序将访问这些数据 如果值应该是可查询的,那么您可以按照以下示例操作 CREATE TABLE [dbo].[ContentTypeDetail]

我有一个任务-我需要以内容类型的形式在数据库中存储动态内容

ContentTypes
基本上是一个键值集合。我需要将这些数据存储在数据库中,并确保内容类型可以查询和索引。我无法为每种内容类型创建一个表,因为它们可以在运行时更改,这将意味着删除表并丢失数据


有人知道这方面的好方法吗?我需要提到的是,DB最终将包含约100万种内容类型。最终,.NET应用程序将访问这些数据

如果值应该是可查询的,那么您可以按照以下示例操作

CREATE TABLE [dbo].[ContentTypeDetail] 
(
    [ContentTypeDetailId] uniqueidentifier  NOT NULL,
    [ContentTypeId] uniqueidentifier  NOT NULL,  
    [ColumnType] smallint  NOT NULL,  
    [ColumnValueString] nvarchar(1000)  NULL,
    [ColumnValueInt] int  NULL  
)
GO

ALTER TABLE [dbo].[ContentTypeDetail] ADD CONSTRAINT [ContentTypeDetail_PK]      PRIMARY KEY CLUSTERED 
(
    [ContentTypeDetailId]
)
GO

CREATE TABLE [dbo].[ContentType] 
(
    [ContentTypeId] uniqueidentifier  NOT NULL,
    [Name] nvarchar(100)  NOT NULL
)
GO

ALTER TABLE [dbo].[ContentType] ADD CONSTRAINT [ContentType_PK] PRIMARY KEY CLUSTERED 
(
    [ContentTypeId]
)
GO

ALTER TABLE [dbo].[ContentTypeDetail] WITH CHECK ADD CONSTRAINT [ContentType_ContentTypeDetail_FK1] FOREIGN KEY 
(
    [ContentTypeId]
)
REFERENCES [dbo].[ContentType] 
(
    [ContentTypeId]
)
GO

当然,您必须添加适当的索引

每个内容类型可以包含哪些信息?字符串和整数