MySQL - 关键字搜索表 - 一个好主意?

时间:2009-11-01 12:19:49

标签: sql mysql database-design data-modeling

拥有'搜索表'是个好主意吗?

例如,可以搜索“用户”,“群组”和“网页”(Facebook样式)的搜索会包含关键字,用户ID,groupid和pageid等字段。

这样系统就可以对一个表中的关键字进行LIKE查询。

或者它会更好像

keyword1,keyword2,keyword3,keyword4,keyword5,userid,groupid,pageid

将关键字保存在每个表格中(用户,群组和网页)......但我确信除了搜索之外我不需要其他任何关键字。

1 个答案:

答案 0 :(得分:2)

我建议使用下表设置:

STUFF_TYPE_CODE

  • STUFF_TYPE_CODE,pk
  • STUFF_TYPE_DESCRIPTION --IE:用户,群组,网页等......

STUFF_KEYWORD_XREF

  • STUFF_ID,pk
  • KEYWORD_ID,pk
  • STUFF_TYPE_CODE,pk,fk

KEYWORDS表:

  • KEYWORD_ID,pk
  • KEYWORD_DESCRIPTION

此设置将允许您:

  1. 存储关键字值一次
  2. 将与该关键字的多个关联保存到各种内容
  3. 关键字可以无任何关联存在
  4. STUFF_KEYWORD_XREF表中的所有三列都必须是主键,以确保不存在基于所有三个值的重复项。