Sql server SQL Server数据库中的标记

Sql server SQL Server数据库中的标记,sql-server,database-design,Sql Server,Database Design,我正在创建一个基于问题理念的网站(比如StackOverflow) 假设相似的问题有相同的标签,标签可以属于一个或多个问题 我正在使用一个sqlserver数据库 在数据库中创建表来注册这些标记是正确的想法,还是有一种不同的方法/概念,我不知道如何注册这些标记?如果您没有处理大量(我认为超过数千万)的问题和标记,您可以采用这样的设计: 问题: 标签 问题XTAG 您在问题和标记之间有一个n:n关联 因此,简短的回答是是的,它可以在SQL Server中完成。 我的建议是尝试将数据存储在关系数据库

我正在创建一个基于问题理念的网站(比如StackOverflow)

假设相似的问题有相同的标签,标签可以属于一个或多个问题

我正在使用一个
sqlserver
数据库


在数据库中创建表来注册这些标记是正确的想法,还是有一种不同的方法/概念,我不知道如何注册这些标记?

如果您没有处理大量(我认为超过数千万)的问题和标记,您可以采用这样的设计:

问题: 标签 问题XTAG 您在
问题
标记
之间有一个
n:n
关联

因此,简短的回答是是的,它可以在SQL Server中完成。


我的建议是尝试将数据存储在关系数据库中,除非有严重的理由不这样做(大数据、非同质数据等),因为这种方式提供了有意义的结构和低级约束。

如果不将数据存储在表中,您会将其存储在哪里???你的问题没有多大意义。
QuestionId INT NOT NULL CONSTRAINT PK_Question PRIMARY KEY, -- auto generated with IDENTITY or SEQUENCE
QText NVARCHAR(MAX) NOT NULL
TagId INT NOT NULL CONSTRAINT PK_Tag PRIMARY KEY, -- auto generated 
TagName NVARCHAR(128)
QuestionXTagId INT NOT NULL CONSTRAINT PK_QuestionXTag PRIMARY KEY, -- auto generated 
QuestionId INT NOT NULL CONSTRAINT FK_QuestionXTag_Question FOREIGN KEY REFERENCES Question,
TagId INT NOT NULL CONSTRAINT FK_QuestionXTag_Tag FOREIGN KEY REFERENCES Tag,
CONSTRAINT UQ_QuestionXTag_QT UNIQUE (QuestionId, TagId)