SQL关系问题
我正在创建一个应用程序,它将在名为SQL关系问题,sql,Sql,我正在创建一个应用程序,它将在名为tags的表中搜索带有这些标记的事件。将有两个表:标记和事件,当用户搜索某个内容时,应用程序搜索标记表,然后显示事件表中的相关信息 这是应用程序搜索和显示数据的流程: User searches -> SQL search on tags table -> using tag_ids found, search for relevant events on events table -> display event data 我这样想对
tags
的表中搜索带有这些标记的事件。将有两个表:标记
和事件
,当用户搜索某个内容时,应用程序搜索标记
表,然后显示事件
表中的相关信息
这是应用程序搜索和显示数据的流程:
User searches ->
SQL search on tags table ->
using tag_ids found, search for relevant events on events table ->
display event data
我这样想对吗?我有一种感觉,我可能不是。我不想将每个
标记id
存储在事件
表中名为标记id_1
、标记id_2
的列中,也不想限制用户可以附加到事件的标记数量。但是,我不想依赖我的应用程序来处理SQL,所以我也不想将标记作为JSON
对象存储在表中。这是可能的,还是我必须改变我的搜索方式?我想你还需要一张表。您已经有了标记和事件,但是标记不应该包含在事件表中,因此创建一个标记和事件表,每个标记和事件ID对应一行
- 标签表
ID | NAME 1 | sql 2 | oracle
- 事件表
ID | TYPE 1 | Question asked 2 | Question asked
EVENT_ID | TAG_ID 1 | 1 1 | 2 2 | 2
- 标记事件表
ID | TYPE 1 | Question asked 2 | Question asked
EVENT_ID | TAG_ID 1 | 1 1 | 2 2 | 2
- 事件1:使用标记“sql”和“oracle”提问
- 事件2:带“oracle”标签的问题
- 标签表
ID | NAME 1 | sql 2 | oracle
- 事件表
ID | TYPE 1 | Question asked 2 | Question asked
EVENT_ID | TAG_ID 1 | 1 1 | 2 2 | 2
- 标记事件表
ID | TYPE 1 | Question asked 2 | Question asked
EVENT_ID | TAG_ID 1 | 1 1 | 2 2 | 2
- 事件1:使用标记“sql”和“oracle”提问
- 事件2:带“oracle”标签的问题
- 我想你还需要一张桌子。您已经有了标记和事件,但是标记不应该包含在事件表中,因此创建一个标记和事件表,每个标记和事件ID对应一行
- 这里有一个N:N关系。有多种类型的标记可以添加到多个不同的事件中。您需要创建另一个表来将它们链接在一起:例如,一个
tags\u per\u event
表
在标记
表中,您仅存储有关标记本身的信息(id、说明..)。在events
表中,您仅描述事件(id、描述、源…)。最后,在tags\u per\u event
表中,每个事件的每个标记都有一行。对于每一行,您将拥有标记的ID和事件的ID。查找信息时,您需要加入3表,以便获得有关哪些标记被分配给哪个事件的所有信息,以及关于这些标记的信息(添加说明等)
这里有一个N:N关系。有多种类型的标记可以添加到多个不同的事件中。您需要创建另一个表来将它们链接在一起:例如,一个
tags\u per\u event
表
在标记
表中,您仅存储有关标记本身的信息(id、说明..)。在events
表中,您仅描述事件(id、描述、源…)。最后,在tags\u per\u event
表中,每个事件的每个标记都有一行。对于每一行,您将拥有标记的ID和事件的ID。查找信息时,您需要加入3表,以便获得有关哪些标记被分配给哪个事件的所有信息,以及关于这些标记的信息(添加说明等)
您可以在所有三个表之间执行
join
语句,对吗?您可以在所有三个表之间执行join
语句,对吗?