当有人进行复选框搜索时,是否可以在一列中包含多个变量?假设复选框是这样的:
跳舞的音乐: 1.Oldies 2.Reggae 3.pop 4.house
让我们说有一个名为'Events'的表格,其中一列是音乐。 列可以以某种方式包含让我们说1,3,4,如果有人选择复选框1,3或4它会返回这一行吗?
谢谢:)
答案 0 :(得分:4)
您描述的是多对多关系。这意味着可以有许多活动,每个活动都可以涵盖多种风格的音乐。另一方面,音乐风格可以在许多事件中表现出来。
一般来说,你可以用一个助手表和两个不同的表来表达这些关系,用于'事件'和'音乐':假设'事件'有一个主键ID,'音乐'也是如此,但是没有列在“音乐”或“事件”中相互引用。相反,要在它们之间建立链接,您将创建第三个表'Event_Music',其中包含'event_id'和'music_id'列。考虑这个例子:
Table Event
id | name
1 | Event A
2 | Event B
3 | Event C
Table Music
id | style
1 | oldies
2 | reggae
3 | pop
4 | house
Table Event_Music
event_id | music_id
1 | 1
1 | 3
3 | 4
这告诉你将会有一个带有老歌和流行音乐的事件A,并且会有只有家庭音乐的事件C.
答案 1 :(得分:2)
我认为您正在寻找MySQL SET
列类型
答案 2 :(得分:2)
如果我理解正确,不,你不能在同一个领域拥有多个值(至少以理智的方式)。
你可以在一个单独的表中执行此操作,让它调用类似[events_genres]的东西,它会在[Events]表主键上有foreign key,在[genres]表主键上有另一个外键。
例如:
[events_genres]
events_id genre_id
1 1
1 2
1 3
2 3
events_id
是表[事件]中事件的id,genre_id
是[genres]表中类型(Oldies,Reggae,php ...)的id。 / p>
答案 3 :(得分:1)
你需要研究很多:很多数据库结构。做一些研究,设置一些表格,然后试一试。它是数据库的基本形式之一。
答案 4 :(得分:1)
将音乐类型放入单独的表格中,并创建一个列和一个外键,指向从音乐类型表中的事件。然后将音乐表的PK存储到Events表中。