在一个字段中如何存储多个值

ilstar 2009-04-06 10:52:14
应该算是平时中经常见到的一种应用吧,比如说
你最喜欢的水果(后面都是checkbox,多选) 苹果,香蕉,橘子.....

在设计的时候,数据库是留了一个字段来存储这些内容,我一般都采取用特殊字符分割,取的时候在拆开,但总觉得这样不太好,有些麻烦

更为深一点的是博客文章的标签,我不仅仅通过文章查看文章具有的标签,而且也需要通过标签找到文章

各位有什么好的办法吗?或者说数据库表有别的好的设计方法吗?不妨分享一下
...全文
1339 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
qiaozirue 2009-04-07
  • 打赏
  • 举报
回复
同上
rgmlkthh 2009-04-07
  • 打赏
  • 举报
回复
这个怎么说呢,设计最好要遵循三范式原则,也就是说你想存储用户喜欢
什么东西,可以单独设计一个表,比如
Id, UserId, likeCatId。
这样就可以存储用户的爱好了。读取也方便哈。
laorer 2009-04-07
  • 打赏
  • 举报
回复
为什么要一个字段存多个值?

你可以这样设计

tid, category, content

1, 书籍, java
2, 书籍, c#
ilstar 2009-04-07
  • 打赏
  • 举报
回复
看这个情况吧,假如说在博客里面有标签这种功能
标签表tag
id, name
1, Java
2, 技术
3, JSP

文章表
id, content, tag_id

我在存一篇文章的时候,如果选择了上面3个标签,要将该文章存储3条吗(内容一致,只有标签不一样)?肯定不是吧,这样太耗费数据库资源了,难道再写一张表,和标签相关联吗

文章标签表
文章_id, 标签_id他们这样关联吗
Billy.Wang 2009-04-07
  • 打赏
  • 举报
回复
最好不要把多个值存放在一个字段内,这样处理起来并不方便,也不灵活。内容多了更麻烦,可参考楼上意见。
haizi730 2009-04-07
  • 打赏
  • 举报
回复
学习了。

50,528

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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