-- 功能: 设计一个站内关键词库,并关联文章,一遍文章可能对应n个关键词, 一个关键词可能对应n遍文章-- 现在有三个表, 文章表 关联表 关键词表 post(pid, content), -- content有全文索引 post_keywd(pkid, pid, kid), keywd(kid, name),
当用户搜索关键词时对keywd表操作(取得kid), 当用户确定了关键时对post_keywd操作(取得pid) , 因为文章多个关键词的原因, 这时可能会有很多pid, 问题来了 , 现在怎么根据这些pid去查询文章呢? 假如有50多个pid .
这样设计表有问题吗 ?
当用户搜索关键词时对keywd表操作(取得kid), 当用户确定了关键时对post_keywd操作(取得pid) , 因为文章多个关键词的原因, 这时可能会有很多pid, 问题来了 , 现在怎么根据这些pid去查询文章呢? 假如有50多个pid .
这样设计表有问题吗 ?
select a.content
from post a,post_keywd b,keywd c
where c.name='关键词' and b.kid=c.kid and a.pid=b.pid
group by b.pid;
from keywd inner join post_keywd using (kid)
inner join post usig (pid)设计上看不出有什么问题,毕竟对你的应用并不了解。只能说符合范式的要求。
post_keywd(
pkid, pid, kid 这个表,似乎可以将pkid 去掉,直接以pid, kid 为主键 , 另外创建(kid ,pid) 的复合索引。