Php 一列中有多个变量?

Php 一列中有多个变量?,php,mysql,Php,Mysql,当某人进行复选框搜索时,是否可能在一列中包含多个变量?假设复选框如下所示: 伴舞音乐: 1.老歌 2.雷鬼音乐 3.流行音乐 4.房子 假设有一个名为“事件”的表格,其中一列是“音乐”。 如果有人选中复选框1、3或4,它将返回此行,那么该列是否会以某种方式包含1、3、4 谢谢:)您需要查看多:多数据库结构。做一些研究,摆一些桌子,然后试一试。它是数据库的基本形式之一。您需要研究多:多数据库结构。做一些研究,摆一些桌子,然后试一试。它是数据库的基本形式之一。将音乐类型放入一个单独的表中,并创建一列

当某人进行复选框搜索时,是否可能在一列中包含多个变量?假设复选框如下所示:

伴舞音乐: 1.老歌 2.雷鬼音乐 3.流行音乐 4.房子

假设有一个名为“事件”的表格,其中一列是“音乐”。 如果有人选中复选框1、3或4,它将返回此行,那么该列是否会以某种方式包含1、3、4


谢谢:)

您需要查看多:多数据库结构。做一些研究,摆一些桌子,然后试一试。它是数据库的基本形式之一。

您需要研究多:多数据库结构。做一些研究,摆一些桌子,然后试一试。它是数据库的基本形式之一。

将音乐类型放入一个单独的表中,并创建一列和一个外键,将事件指向音乐类型表。然后将音乐表的主键存储到事件表中。

将音乐类型放入单独的表中,并创建一列和一个外键,将事件指向音乐类型表。然后将音乐表的主键存储到事件表中。

我想你在寻找MySQL列类型

我想你在寻找MySQL列类型

如果我理解正确,不,在同一个字段中不能有多个值(至少在正常情况下)

您可以在一个单独的表中执行此操作,让我们将其称为类似于[events_-Tyres]的内容,并且它在[events]表主键上有一个外键,在[Tyres]表主键上有另一个外键

例如:

[events_genres]
events_id    genre_id
1            1
1            2
1            3
2            3

events\u id
是表[events]中事件的id,
genre\u id
是[genres]表中流派(老歌、雷鬼音乐、php…)的id。

如果我理解正确,不,在同一个字段中不能有多个值(至少以正常的方式)

您可以在一个单独的表中执行此操作,让我们将其称为类似于[events_-Tyres]的内容,并且它在[events]表主键上有一个外键,在[Tyres]表主键上有另一个外键

例如:

[events_genres]
events_id    genre_id
1            1
1            2
1            3
2            3

events\u id
是表[events]中事件的id,
genre\u id
是[genres]表中流派(老歌、雷鬼、php…)的id。

您描述的是一种多对多关系。这意味着可以有许多活动,每个活动都可以包含多种风格的音乐。另一方面,一种音乐风格可以在许多活动中表现出来

通常,您可以使用一个助手表和两个不同的“事件”和“音乐”表来表示这种关系:假设“事件”和“音乐”都有主键id,但“音乐”或“事件”中都没有相互引用的列。相反,要在它们之间建立链接,可以创建第三个表“Event\u Music”,其中包含“Event\u id”和“Music\u 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。

你所描述的是一种多对多的关系。这意味着可以有许多活动,每个活动都可以包含多种风格的音乐。另一方面,一种音乐风格可以在许多活动中表现出来

通常,您可以使用一个助手表和两个不同的“事件”和“音乐”表来表示这种关系:假设“事件”和“音乐”都有主键id,但“音乐”或“事件”中都没有相互引用的列。相反,要在它们之间建立链接,可以创建第三个表“Event\u Music”,其中包含“Event\u id”和“Music\u 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。

这可能会起作用,但这不是一个好主意:你应该规范化这些数据。制作一个额外的表musicForEvent,它有一个EventID和一个Music列,如果一个事件有三个Music,现在添加三行。规范化不是解决方案。您想要的是比关系模型更具表现力的东西,所以我建议您使用NoSQL。@Frits破坏NoSQL,noice!这可能有效,但不是一个好主意:您应该规范化这些数据。制作一个额外的表musicForEvent,它有一个EventID和一个Music列,如果一个事件有三个Music,现在添加三行。规范化不是解决方案。您想要的是比关系模型更具表现力的东西,所以我建议您使用NoSQL。@Frits破坏NoSQL,noice!从技术上讲,在此设置中应该有一个桥接/连接表(例如
事件到类型
)。
genres
表应该只包含基本类型记录。@Jason McCreary是的,我想你在我编辑帖子时咳嗽了我:)我想现在更清楚了。这个解决方案不是为每个事件返回多于一行吗?@pufAmuf是的,因为一个事件可以没有,连接到它的一个或多个类型。从技术上讲,在此设置中应该有一个桥接/连接表(例如
事件\u到\u类型
)。
genres
表应该只包含基本类型记录。@Jason McCreary是的,我想你在我编辑帖子时咳嗽了我:)我想现在更清楚了。这个解决方案不是为每个事件返回多于一行吗?@pufAmuf是的,因为一个事件可以没有,附加一个或多个类型。如果您不希望遵循传统的多对多关系数据库方法,可以选择+1。这听起来确实是最好的选择,因为我不希望为同一事件返回多行。如果您不希望遵循传统的多对多关系数据库方法,可以选择+1,关系数据库的多对多方法。这听起来确实是最好的选择,因为我不希望为同一事件返回多行。很好,这很容易理解,但是当我返回表时,eac会有多行吗