2012-10-29 113 views
1

我有一个数据库中的几个条目(这将成长为数千),我希望能够通过关键字进行索引。关键字功能像Stackoverflows

所以说我有一个表如:

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

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

高|金发| |男| |瘦身

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

感谢

回答

1

你需要三张表

用户:

id | username | email | description 

标签:(包含高大,金发碧眼,男,瘦等等......在名称字段)

id | name 

users_tags:

user_id | tag_id 

若要让用户有标签,请使用相关项目的ID向users_tags表中添加一行。

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

+0

谢谢!这很有意义。 – Chud37

0

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

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

和具有它们之间的关系(在相同的列名的一个例子)。

0

这是一个多对多的关系。

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

然后,您将有第三个表,其中有两列形成一个组合键,其中每个组合键都是另外两个表中的外键。

例如

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