1

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

所以说我有一张桌子,比如:

编号 | 用户名 | 电子邮件 | 描述

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

高 | 金发女郎 | 男 | 瘦骨嶙峋的

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

谢谢

4

3 回答 3

1

你需要三张桌子

用户:

id | username | email | description

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

id | name

用户标签:

user_id | tag_id

要使用户拥有标签,您可以在users_tags表中添加一行,其中包含相关项目的 id。

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

于 2012-10-29T11:13:29.570 回答
0

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

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

并在它们之间建立关系(在与示例相同的列名上)。

于 2012-10-29T11:13:38.383 回答
0

这是一个多对多的关系。

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

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

例如

object_keyword_relationship
===========================
object_id    |   keyword_id
1            |   1
1            |   2
于 2012-10-29T11:14:35.150 回答