建网站。像标签,关键字这种东西,在数据库里应该是什么格式?
关于这个商品的关键字,是用逗号分割的一句话——“关键字,关键字,关键字”还是一个一个的词——“关键字”这个关键字有什么作用?额不好意思,是我没表达清楚。比如:idword...
关于这个商品的关键字,是用逗号分割的一句话 —— “关键字,关键字,关键字”
还是一个一个的词 —— “关键字”
这个关键字有什么作用?
额不好意思,是我没表达清楚。
比如:
id word
1 关键词1
2 关键词2
还是:
id word
1 关键词1,关键词2
我说的是这种“格式”,能从查询速度啊什么的来回答一下吗,应该选哪种?或者说根本不是这样,有另外的做法? 展开
还是一个一个的词 —— “关键字”
这个关键字有什么作用?
额不好意思,是我没表达清楚。
比如:
id word
1 关键词1
2 关键词2
还是:
id word
1 关键词1,关键词2
我说的是这种“格式”,能从查询速度啊什么的来回答一下吗,应该选哪种?或者说根本不是这样,有另外的做法? 展开
7个回答
展开全部
这样会比较好
商品表(商品id,...其他商品信息字段)
关键词表(关键词id,关键词,...其他相关信息字段)
关系表(商品id,关键词id)
这样存的话不管是一个商品的多个关键字还是包含某个关键字的所有商品查询起来都很方便,而且关系很清晰,更重要的是更新关键词和商品的对应关系时完全不需要修改商品表和关键词表的内容
商品
商品id 商品名称
1 aaa
2 bbb
3 ccc
关键词
关键词id 关键词
1 qwe
2 rty
3 uio
关系表
商品id 关键词id
1 1
1 2
2 2
2 3
3 1
3 2
3 3
商品1有关键词1 2
商品2有关键词2 3
商品3有关键词1 2 3
如果要把商品3的关键词2删了 直接把关系表(3,2)的项删了就完成了,完全不用关心关键词表和商品表的内容
商品表(商品id,...其他商品信息字段)
关键词表(关键词id,关键词,...其他相关信息字段)
关系表(商品id,关键词id)
这样存的话不管是一个商品的多个关键字还是包含某个关键字的所有商品查询起来都很方便,而且关系很清晰,更重要的是更新关键词和商品的对应关系时完全不需要修改商品表和关键词表的内容
商品
商品id 商品名称
1 aaa
2 bbb
3 ccc
关键词
关键词id 关键词
1 qwe
2 rty
3 uio
关系表
商品id 关键词id
1 1
1 2
2 2
2 3
3 1
3 2
3 3
商品1有关键词1 2
商品2有关键词2 3
商品3有关键词1 2 3
如果要把商品3的关键词2删了 直接把关系表(3,2)的项删了就完成了,完全不用关心关键词表和商品表的内容
追问
我用hibernate,我每次给商品设置一个关键字,由于没有id,他都会在数据库新生成一个,我是在要存之前先查一遍“关键词表”有没有“这个关键字”,如果有得到拿出来,存到商品对象里去,再存商品吗?感觉又有点麻烦。
请问有什么好的方法设计这个吗?
追答
那不如这样,你关键词表都不要了,直接弄一个商品表和一个关系表
商品表不用动里面也不需要有关键词字段,单纯的存商品的信息
关系表是这样的 关系表(商品id,关键词) 一对多的关系你在设置关键词的时候就这样
为商品1添加关键词“aaa”和“bbb”
insert into 关系表 values (1, 'aaa');
insert into 关系表 values (1, 'bbb');
要查商品1的所有关键词就这样
select 关键词 from 关系表 where 商品id = 1
要查包含关键词'aaa'的所有商品就这样
select 商品id from 关系表 where 关键词='aaa'
如果以后你的商品不想要关键词了,直接把关系表删了就行,不会影响到你商品表里的任何内容,这样的数据库易于维护
2013-09-13
展开全部
一般都是varchar格式,具体要看你用的什么数据库了,关键字是用来让搜索引擎查找的,别人搜索时会先和你的关键字匹配。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
标签调用的是数据库表中的关键字段的属性值,比如表中的关键字段属性值是5,那么调用显示出来的就是5.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-09-13 · 知道合伙人互联网行家
关注
展开全部
就是普通的文本格式,varchar或者char都可以……
更多追问追答
追问
额不好意思,是我没表达清楚。
比如:
id word
1 关键词1
2 关键词2
还是:
id word
1 关键词1,关键词2
我说的是这种“格式”,能从查询速度啊什么的来回答一下吗,应该选哪种?或者说根本不是这样,有另外的做法?
追答
第一种调用读取同一条记录的多个字段值,然后拼接一块。
第二种是调用一条记录的一个字段值,然后直接列出或者拆分成数组来循环读取。
你是要直接输出 关键词1,关键词2,关键词3 这种形式的话,第二种比较好,省资源。
还是调用出以后还要对单个关键词进行其他处理? 这样的话第一种比较好,适合二次处理。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在数据库中没有格式要求,仅仅在前台展现时,使用下划线分割最好。
追问
额不好意思,是我没表达清楚。
比如:
id word
1 关键词1
2 关键词2
还是:
id word
1 关键词1,关键词2
我说的是这种“格式”,能从查询速度啊什么的来回答一下吗,应该选哪种?或者说根本不是这样,有另外的做法?
追答
格式:关键词1_关键词2_关键词3_.....
第2种格式好。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询