Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 2 创建类似“github”的;标签";特色_Asp.net Mvc 2_C# 3.0_Github - Fatal编程技术网

Asp.net mvc 2 创建类似“github”的;标签";特色

Asp.net mvc 2 创建类似“github”的;标签";特色,asp.net-mvc-2,c#-3.0,github,Asp.net Mvc 2,C# 3.0,Github,我注意到在github上,它们允许您创建多个标签,并将其与问题关联,如果您想过滤,可以按标签过滤 我该如何去创造这样的东西呢 我有一个任务管理器,我需要在数据库中为标签存储什么 我的过程(大声思考):创建任务,允许创建任务的用户添加标签,此标签必须来自预先定义的列表,因此一个名为UserLabels的表-我可以存储标签的位置,当用户希望向其任务添加多个标签时,我将显示此列表中的标签 我是否将标签ID作为数组存储在nvarchar(max)字段中,即: {labelid:5,labelid:6,l

我注意到在github上,它们允许您创建多个标签,并将其与问题关联,如果您想过滤,可以按标签过滤

我该如何去创造这样的东西呢

我有一个任务管理器,我需要在数据库中为标签存储什么

我的过程(大声思考):创建任务,允许创建任务的用户添加标签,此标签必须来自预先定义的列表,因此一个名为UserLabels的表-我可以存储标签的位置,当用户希望向其任务添加多个标签时,我将显示此列表中的标签

我是否将标签ID作为数组存储在nvarchar(max)字段中,即: {labelid:5,labelid:6,labelid:900}


最好的方法是什么?

如果您希望以适当的方式执行此操作,您需要一个表,将任务ID映射到标签ID。作为外键

这将是正确的正常化方法


就我个人而言,我的任务表中有一个字段,其中包含标签ID列表或标签本身。这实际上取决于我的标准。

如果我的数据库没有受到很大的影响,我可能会在TaskLabel表中有大量的记录列表吗?我的意思是,我可以将每个任务的标记限制为3个,这将大大有助于甚至每个任务1个StackOverflow将标记存储在一个字段中,请参见posts表:这就是多对多关系在数据库中的工作方式。就像我说的,我可能会有一个带有标签ID或标签列表的varchar字段