2017-08-30 23 views
-3

我有一個任務 - 我需要在內容類型的形式存儲在數據庫中的動態內容。內容類型 - 動態數據結構存儲C#+ SQL服務器

ContentTypes基本上是一個鍵值集合。我需要將這些數據存儲在數據庫中,並確保內容類型是可查詢的並且可以被索引。我無法爲每個內容類型創建一個表,因爲它們可以在運行時更改,這意味着會丟失表並丟失數據。

有沒有人知道這方面的任何好方法?我需要提到的是,DB最終將包含大約100萬種內容類型。最終,這些數據將被.NET應用程序訪問。

+0

什麼都能每個內容類型包含的信息? –

+0

字符串和整數 –

回答

0

如果值應該是可查詢的,那麼你可以按照下面的示例

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 
當然

工作,你必須添加適當的索引