我有一个带有通过实体框架访问的Microsoft SQL Server数据库的ASP.NET MVC应用程序。我想实现标签/标签/关键字功能。我在应用程序中有多种类型的对象,但是所有对象都将具有标签,并且将能够使用这些标签搜索并找到它们。
我对如何实现此功能感到困惑。
这是我考虑的一些方法:1.当前,每个对象的ID都是从0到n的整数。这是一个问题,因为ID 1156可以引用多个对象:表1中的行1156,表2中的行1156。我应该将ID的实现更改为字符串GUID吗?
我是否应该为标签创建一个表,并创建一个单独的表以将关键字与对象相关联?(TagGuid,ObjectGuid)。此实现将需要另一个查询来找到对象。
我是否应该在每个表中创建一个名为“标签”的列,并将选项卡作为字符串列出?“ tag1 tag2 tag3”?就搜索查询的持续时间而言,这将对性能产生怎样的影响?如果需要计算驻留在特定标签下的对象怎么办?
寻找其他可能的解决方案。抱歉,我不知道从哪里开始-我可以选择任何一种实现方式,但我认为执行此任务的方式可能很简单。
为您的哈希标签创建一个单独的表,并具有指向其他表的多个外键。
想象一下...
Table > Hashtag
Col > HashtagId
Col > Tag
Col > ThreadId
Col > CommentId
等等...
如果将外键设为可选,则在使用EF查询数据源时,可以使用过滤结果。
var commentHashtags = DbSource.Hashtags.Where(tag => tag.CommentId != (int?)null);
无论CommentId不为null的其他地方,其他列都将是,除非您在一行中填充多个外键列。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句