[急] 关于Tag(标签表)的设计 和 对已经添加的Tag进行编辑

gongsun 2009-04-30 03:57:14


就是添加文章、日志、资源等的时候 添加相应的Tag.

假如有一文章表: Article
ArticleID int 主健 自增
Column_ID int 文章所属类别
ArticleTitle nvarchar(50) 文章标题
ArticleContent text 文章内容
ArticleTime datetime 发表时间
UserID int 发表者
ArticleTag nvarchar(100) 文章Tag: 用"|" 分割

------------------------------------------------------------------------------------------------------------------
ArticleID Column_ID ArticleTitle ArticleContent ArticleTime UserID ArticleTag
1 10 aaa bbbbbbb 2009-4-30 15:10:10 1 asp|.net|C#
2 10 ccc ddddddd 2009-4-30 15:11:10 2 asp|jsp


------------------------------------------------

现在是标签表: TheTag

我是有2种设计想法:

(1)

TagID int 主健 自增
TagName nvarchar(50) 标签名
TagTime datetime 标签时间
ObjNum int 引用该标签的 资源 总数
TagClose int 锁定该标签 0:正常 1:锁定

------------------------------------------------------------------------------------
TagID TagName TagTime ObjNum TagClose
1 asp 2009-4-30 15:10:11 2 0
2 .net 2009-4-30 15:10:12 1 0
3 C# 2009-4-30 15:10:13 1 0
4 jsp 2009-4-30 15:11:13 1 0

-----------------------------------------------

如此 与标签对应的资源表: Tag_Article
TagID 对应的TagID
ObjID 文章、日志或文件等的ID
Column_ID 对应资源的类别
-----------------------------------------------
TagID Column_ID ObjID
1 10 1
2 10 1
3 10 1
1 10 2
4 10 2



(2)

TagID int 主健 自增
TagName nvarchar(50) 标签名
TagTime datetime 标签时间
UserID int 创建该标签的用户ID
TagClose int 锁定该标签 0:正常 1:锁定

-------------------------------------------------------------------------------------
TagID TagName TagTime UserID TagClose
1 asp 2009-4-30 15:10:11 1 0
2 .net 2009-4-30 15:10:12 1 0
3 C# 2009-4-30 15:10:13 1 0
4 asp 2009-4-30 15:11:12 2 0
5 jsp 2009-4-30 15:11:13 2 0


------------------------------------------------

与标签对应的资源表 Tag_Article

如此 与标签对应的资源表: Tag_Article
TagID 对应的TagID
ObjID 文章、日志或文件等的ID
Column_ID 对应资源的类别
-----------------------------------------------
TagID Column_ID ObjID
1 10 1
2 10 1
3 10 1
4 10 2
5 10 2



----------------------------------------------------------------------------------------------------------
小弟现在想问问:这2种设计合不合理?

或哪种设计更优化,对以后搜索查询更加方便? 或者还有更好的Tag表设计方案。

我现在想用的就是(1)中的Tag设计,但重新编辑一篇文章的Tag的时候貌似就比较复杂。

比如:Article表中的记录1,如果我编辑TagName, 将asp|.net|C# 改成 jsp|.net|C# 或 asp|.net 或 jsp|.net|C#|php

那么关联的TheTag表 和 Tag_Article表 将会发生变化,存储过程写起来也的分很多种情况...

头有点晕哦.........

希望有经验的大侠指点一二!!!!!!!!!!!!

谢谢啦!
...全文
300 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
ericSola 2010-03-18
  • 打赏
  • 举报
回复
200分就这么....

三个表

-----------------------------
| article | a-t | tags |
|-----------------------------
| aid | atid | tid |
|------------------------------
| acontent| aid | tname |
|------------------------------
| .... | tid | .... |
-----------------------------
greki 2009-10-19
  • 打赏
  • 举报
回复
up 看看
gongsun 2009-05-03
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 taoyuan0908 的回复:]
是挺麻烦的,为什么不把Tag单独出来,设置一外键引用。
[/Quote]

?

Tag已经单独出来了。
clal 2009-05-03
  • 打赏
  • 举报
回复
up
陌上花花 2009-05-03
  • 打赏
  • 举报
回复
好帖 帮顶了
gdjlc 2009-05-02
  • 打赏
  • 举报
回复
这是在Web2.0应用..书上看到的,好像不太符合lz要求:

分类表TagCatalog
ID ID
Name 名称
-----------------------------------------------------------------
标签表Tag
ID ID
Name 名称
CatalogID 所属分类ID
ShowOrder 排序
ViewCount 查看次数
CreateDate 创建时间
UserID 所属用户ID
Flag 标志
Remark 备注
-----------------------------------------------------------------
文章表Article
ID ID
Name 标题
Body 内容
TagID 所属标签ID
一方晴空 2009-05-02
  • 打赏
  • 举报
回复
是挺麻烦的,为什么不把Tag单独出来,设置一外键引用。
gongsun 2009-05-02
  • 打赏
  • 举报
回复
up
gongsun 2009-05-01
  • 打赏
  • 举报
回复
up
mzjmicrosoft 2009-04-30
  • 打赏
  • 举报
回复
好帖 帮顶
kfps8kfps8 2009-04-30
  • 打赏
  • 举报
回复
把贴子转到MS-SQL Server版块去试试
gongsun 2009-04-30
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 FreeSarge 的回复:]
LZ 可以看一些 关系函数的 文章,来优化自己的数据库设计。
[/Quote]


...
指间的风 2009-04-30
  • 打赏
  • 举报
回复
LZ 可以看一些 关系函数的 文章,来优化自己的数据库设计。
wujinjian2008n 2009-04-30
  • 打赏
  • 举报
回复
mark up
itcrazyman 2009-04-30
  • 打赏
  • 举报
回复
mark up 顶起

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧