一列中有多个变量?

时间:2011-08-29 19:35:44

标签: php mysql

当有人进行复选框搜索时,是否可以在一列中包含多个变量?假设复选框是这样的:

跳舞的音乐: 1.Oldies 2.Reggae 3.pop 4.house

让我们说有一个名为'Events'的表格,其中一列是音乐。 列可以以某种方式包含让我们说1,3,4,如果有人选择复选框1,3或4它会返回这一行吗?

谢谢:)

5 个答案:

答案 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表中。