a*****g 发帖数: 19398 | 1 我看好多网站有 Tag 功能.
这个在数据库里面是怎么实现的?是不是就是有个 field,然后把所有 Tag值都存里
面. |
w***g 发帖数: 5958 | 2 什么样的tag?
【在 a*****g 的大作中提到】 : 我看好多网站有 Tag 功能. : 这个在数据库里面是怎么实现的?是不是就是有个 field,然后把所有 Tag值都存里 : 面.
|
a*****g 发帖数: 19398 | 3 我有一些围棋的棋谱,想加些 Tag 字符
存里
【在 w***g 的大作中提到】 : 什么样的tag?
|
a*****g 发帖数: 19398 | |
w***g 发帖数: 5958 | 5 create table tag (article_id int, text char(1000));
然后显示的时候select text from tag where article_id = xxx.
【在 a*****g 的大作中提到】 : 我有一些围棋的棋谱,想加些 Tag 字符 : : 存里
|
L*****e 发帖数: 8347 | 6 不要把所有tag值放进一个field里,一个field一个值。。。
棋谱一个table(棋谱ID以及其它),tag一个table(带两个fields: tagId, tagName)
然后一个table来associate棋谱和tags
create table TagedQiPu(QipuId INT, TagId INT)
【在 a*****g 的大作中提到】 : 我看好多网站有 Tag 功能. : 这个在数据库里面是怎么实现的?是不是就是有个 field,然后把所有 Tag值都存里 : 面.
|
W***o 发帖数: 6519 | 7 前几天我做过一个类似的tagging system
对应的关系是一篇文章对应多个tag,一个tag 也可以对应多个文章(or whatever
entry)
我用的hibernate里面的@ManyToMany 做的
基本思路是利用一个intermediate table保存: (article_id, tag_id)
另外两个table分别是article, tag
article table:
article_id, title, author, .....
tag table:
tag_id, tag_name, ....
当你调用某个article_id的时候,retrieve all the tags associated with it.
写过一遍,觉得不是很难,用hibernate或其他orm工具,都不用写sql
【在 a*****g 的大作中提到】 : 我看好多网站有 Tag 功能. : 这个在数据库里面是怎么实现的?是不是就是有个 field,然后把所有 Tag值都存里 : 面.
|
g*****g 发帖数: 34805 | 8 俺实现的系统,用的Cassandra,就是tag name:value做key,后面无数的entry key都
在一列上。
如果记录多可以考虑一下。 |
W***o 发帖数: 6519 | 9 请教一下:
value 是棋局id?那 entry key 是啥?
我好奇,还没鼓捣过cassandra (囧)
【在 g*****g 的大作中提到】 : 俺实现的系统,用的Cassandra,就是tag name:value做key,后面无数的entry key都 : 在一列上。 : 如果记录多可以考虑一下。
|
N********n 发帖数: 8363 | 10
这样设计数据库面试会秒FAIL的。
【在 a*****g 的大作中提到】 : 我看好多网站有 Tag 功能. : 这个在数据库里面是怎么实现的?是不是就是有个 field,然后把所有 Tag值都存里 : 面.
|
|
|
N********n 发帖数: 8363 | 11
正解。
【在 L*****e 的大作中提到】 : 不要把所有tag值放进一个field里,一个field一个值。。。 : 棋谱一个table(棋谱ID以及其它),tag一个table(带两个fields: tagId, tagName) : 然后一个table来associate棋谱和tags : create table TagedQiPu(QipuId INT, TagId INT)
|
g*****g 发帖数: 34805 | 12 Think of it as a multimap, commonly seen in wide column DB.
【在 W***o 的大作中提到】 : 请教一下: : value 是棋局id?那 entry key 是啥? : 我好奇,还没鼓捣过cassandra (囧)
|
w***g 发帖数: 5958 | 13 竟然都做过。看来经验确实不是吹出来的。不过楼主的情况我觉得上个drupal或者
wordpress就行了。自己从头做太太麻烦。
【在 g*****g 的大作中提到】 : 俺实现的系统,用的Cassandra,就是tag name:value做key,后面无数的entry key都 : 在一列上。 : 如果记录多可以考虑一下。
|
n*w 发帖数: 3393 | 14 用关系数据库的话,我会加个PK(articleid,tagid)。 |
c***d 发帖数: 996 | 15 tag系统的关键是处理好scope, normalization和aggregation的关系。做的好的话是一
个用户可以自定义的元数据管理系统。
【在 a*****g 的大作中提到】 : 我看好多网站有 Tag 功能. : 这个在数据库里面是怎么实现的?是不是就是有个 field,然后把所有 Tag值都存里 : 面.
|
c********1 发帖数: 421 | 16 听起来很有料的样子,具体展开说说?多谢
【在 c***d 的大作中提到】 : tag系统的关键是处理好scope, normalization和aggregation的关系。做的好的话是一 : 个用户可以自定义的元数据管理系统。
|
H****S 发帖数: 1359 | 17 Google hibernate faceted search
【在 a*****g 的大作中提到】 : 我看好多网站有 Tag 功能. : 这个在数据库里面是怎么实现的?是不是就是有个 field,然后把所有 Tag值都存里 : 面.
|