0

我正在构建一个用户可以添加注释的应用程序。我希望用户能够为笔记添加一些标签并在之后对其进行过滤。到目前为止,我允许用户使用字符串工作并使用 LIKE %% 进行过滤。但这并不能完全满足我的需求,因为当有更多标签时,我可能需要搜索并非所有标签,使用运算符等。例如:stackoverflow 标签。

我正在考虑以下SQL结构

  • 有一个名为“notes”的表,列名为“tag_id”
  • 有一个名为“tags”的表,它为“tag_id”提供“文本”
  • 一个函数,它翻译每个数组(向前和向后)并将其替换为相反的等价物 [numbers <=> tag translations for front end, and tag translations <=> number for the database and following filtering]

问题是:这样做是个好主意吗?我应该如何构建我的数据库?你知道任何可以帮助我的特定文章吗?

4

1 回答 1

0

如果您想要一张带有许多标签的便笺,我建议您颠倒您跟踪关系的方式。换句话说,单词有:

表注释
- 字段注释 ID
- 字段注释名称

表标签
- 字段标签 ID - 字段 noteid -
字段标签名

如果您想要多对多关系,则将该关系存储在第三个表中,该表将具有 3 列:1) linkid 2) tagid 3) noteid 。

然后,您可以通过查询标签表 where noteid=noteid 或对表进行联接来检索特定标签的所有标签 - 实际联接将取决于您要执行的操作

于 2013-02-27T01:09:30.113 回答