我有一个数据库中的几个条目(这将成长为数千),我希望能够通过关键字进行索引。关键字功能像Stackoverflows
所以说我有一个表如:
ID |用户名|电子邮件|描述
而且我想为该用户添加多个关键字,例如:
高|金发| |男| |瘦身
我该如何构建表格?就像新问题底部的stackoverflow中使用的关键字一样?
感谢
我有一个数据库中的几个条目(这将成长为数千),我希望能够通过关键字进行索引。关键字功能像Stackoverflows
所以说我有一个表如:
ID |用户名|电子邮件|描述
而且我想为该用户添加多个关键字,例如:
高|金发| |男| |瘦身
我该如何构建表格?就像新问题底部的stackoverflow中使用的关键字一样?
感谢
你需要三张表
用户:
id | username | email | description
标签:(包含高大,金发碧眼,男,瘦等等......在名称字段)
id | name
users_tags:
user_id | tag_id
若要让用户有标签,请使用相关项目的ID向users_tags
表中添加一行。
user_id和tag_id都应该是外键,引用适当的表,并组合起来,它们应该形成唯一的键(可能是主键)。
如果我正确理解,有3个表:
- users (user_id, username)
- keywords (keyword_id, keyword)
- user_keywords (user_id, keyword_id)
和具有它们之间的关系(在相同的列名的一个例子)。
这是一个多对多的关系。
您有一个关键字表和一个对象表(可以与关键字关联)。
然后,您将有第三个表,其中有两列形成一个组合键,其中每个组合键都是另外两个表中的外键。
例如
object_keyword_relationship
===========================
object_id | keyword_id
1 | 1
1 | 2
谢谢!这很有意义。 – Chud37