首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >标签系统中的标签ID

标签系统中的标签ID
EN

Stack Overflow用户
提问于 2009-02-14 16:02:44
回答 3查看 871关注 0票数 4

我正在实现一个类似于StackOverflow标签系统的标签系统。我在想,当存储标签和与问题相关时,这种关系将直接与标签名称相关,还是最好创建一个字段tagID来将问题与标签“链接”起来?看起来直接链接到标记名更容易,但看起来并不好,主要原因是当使用统计和/或标记分类(IMHO)时,很难管理这一点。另一个问题是当一个管理员决定“修复”一个标签名称时。如果没有标记名称分隔的tagID,那么我将更改表的键...

你的想法是什么?

感谢你所有的回复。我将删除这篇文章,因为有另一篇文章具有相同的主题。我想知道为什么搜索和建议没有为我显示结果...

EN

回答 3

Stack Overflow用户

发布于 2009-02-14 16:11:24

你问题的最后一句话似乎回答了这个问题。假设标签存储在一个标记表中,我将始终有一个ID列(int或GUID)和varchar/string列作为标记名。将某个其他实体与一个或多个标记相关联的多对多(连接表)将有两列,其中包含ID "other entity“和标记的ID。这样就可以很容易地编辑标记(例如更正拼写错误),而不需要触摸键。在使用包含与连接表的连接的查询时,您应该会获得更好的性能,这也意味着您可以更好地规范化数据。

记住,"the key, the whole key and nothing but the key, so help me codd"!:)

票数 3
EN

Stack Overflow用户

发布于 2009-02-14 16:08:49

如果您预见到许多标签,并且正在使用关系数据库,那么在内部使用数据库本地支持的ID (例如RID)可能会给您带来更好的性能。

如果这不是一个问题,那就使用简单的短标记名。您可以为标记指定长名称,在有意义的地方也会显示在用户界面中(例如,在创建新标记时要求用户提供一个名称)。您更有可能必须编辑长名称,没有任何东西直接引用,所以这不是问题。

另外,如果您使用的是关系数据库,使用一个简单的查询来更改标记名及其所有引用可能并不是很困难,这可能只是一个稍微昂贵的操作,但它可能不会频繁地完成,因此您需要对其进行优化。考虑到你可能有重复的标签,你也想要合并,所以你可能无论如何都想要这样做。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/549292

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档