像Stackoverflow这样的关键字功能

时间:2012-10-29 11:10:01

标签: php mysql database

我希望能够通过关键字索引的数据库中有几个条目(将增加到数千个)。

所以说我有一张表如:

id |用户名|电子邮件|描述

我想为该用户添加多个关键字,例如:

高大金发女郎|男|骨感

我如何为此构建表格?就像新问题底部的stackoverflow中使用的关键字一样?

由于

3 个答案:

答案 0 :(得分:1)

你需要三张桌子

用户:

id | username | email | description

标签:(将在名称字段中包含Tall,Blonde,Male,Skinny等)

id | name

users_tags:

user_id | tag_id

要使用户拥有标记,您可以使用相关项的ID向users_tags表添加一行。

user_id和tag_id都应该是外键,引用相应的表,并且组合起来,它们应该形成唯一键(可能是主键)。

答案 1 :(得分:0)

如果我理解正确,请有3个表:

- users (user_id, username)
- keywords (keyword_id, keyword)
- user_keywords (user_id, keyword_id)

并且它们之间有关系(在示例中的相同列名称上)。

答案 2 :(得分:0)

这是一种多对多的关系。

您有一个关键字表和一个对象表(可以与关键字相关联)。

然后你有一个第三个表,它有两列形成一个复合键,每个列都是另外两个表的外键。

e.g。

object_keyword_relationship
===========================
object_id    |   keyword_id
1            |   1
1            |   2