在关系数据库中实现blog标记的最有效方法

时间:2022-10-18 00:08:54

I am using ASP.NET MVC5, Entity Framework, Web API 2, OData, MSSQL backend; a pretty standard MS stack I suppose... and wondering: What's the best setup / structure for a simple blog system with regards to "Tags"? Should I store each tag in a Tags table as a new row? Or is there a better / more efficient way? It might be worth mentioning that I may also wish to use tags in other parts of my site later (perhaps in the CMS pages I have and so forth)... so I need to think of the best way to make this efficient and extensible.

我用ASP。NET MVC5、实体框架、Web API 2、OData、MSSQL后端;一个相当标准的MS堆栈……问:对于一个简单的博客系统来说,“标签”的最佳设置/结构是什么?我应该将每个标记存储在一个标记表中作为一个新的行吗?还是有更好/更有效的方法?值得一提的是,稍后我可能还希望在我的站点的其他部分使用标记(可能在我拥有的CMS页面中)……因此,我需要想出最好的方法来使其高效和可扩展性。

1 个解决方案

#1


1  

Use a simple table for tags:

使用一个简单的表格作为标签:

TblTags 
-------
TagId int (pk, identity)
TagName varchar(30) (unique, or nvarchar, and use whatever length that suits your needs.)

Then use an intersection table with tags and whatever, for example blog articles:

然后使用带有标签的交集表,比如博客文章:

TblTagsToBlogArticle
--------------------
TTBA_BlogArticle_Id
TTBA_Tag_Id

Note that the primary key should contain both columns of this table.

注意,主键应该包含该表的两列。

#1


1  

Use a simple table for tags:

使用一个简单的表格作为标签:

TblTags 
-------
TagId int (pk, identity)
TagName varchar(30) (unique, or nvarchar, and use whatever length that suits your needs.)

Then use an intersection table with tags and whatever, for example blog articles:

然后使用带有标签的交集表,比如博客文章:

TblTagsToBlogArticle
--------------------
TTBA_BlogArticle_Id
TTBA_Tag_Id

Note that the primary key should contain both columns of this table.

注意,主键应该包含该表的两列。