首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >三列DB模式中的标记同义词

三列DB模式中的标记同义词
EN

Stack Overflow用户
提问于 2012-02-18 12:23:36
回答 1查看 249关注 0票数 0

假设您拥有与描述的here相同的数据模型。

代码语言:javascript
运行
复制
Table: Item
Columns: ItemID, Title, Content

Table: Tag
Columns: TagID, Title

Table: ItemTag
Columns: ItemID, TagID

如果您希望具有类似于stackoverflow上的标记同义词,那么您将把这些信息放在数据模型中的哪里?您是只添加一个带有逗号分隔的同义词列表的属性,还是会稍微转换一个数据模型?

插入新项的SQL语句会是什么样的呢?新项目是与所有同义词连接,还是只与一个主标记连接,在代码中,我们必须检测到这是同义词吗?

您建议使用哪种方法来平滑插入删除和通过标记操作搜索

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-18 12:28:01

更改Tag表并添加一个TagSynonym表:

代码语言:javascript
运行
复制
Table: Tag
Columns: TagID

Table: TagSynonym
Columns: TagID, Title

TagSynonym.TagID将是FK到Tag(TagID)Title将是PK。

如果您还想使用"MainSynonym“标记,则可以使用以下内容:

代码语言:javascript
运行
复制
Table: Tag
Columns: TagID

Table: TagSynonym
Columns: TagID, Title

Table: TagMainSynonym
Columns: TagID, Title

TagMainSynonym(TagID)是PK,TagMainSynonym(TagID, Title)是FK到TagSynonym(TagID, Title)

它看起来可能过期了,但是像合并两个标记这样的简单操作只需要Tag.TagID上的一个简单的Tag.TagID(一行),而级联效应将完成其余的操作(在3个表中)。

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

https://stackoverflow.com/questions/9341111

复制
相关文章

相似问题

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