Php 如何在MySQL的一个单元格中为单个项存储多个值
序列化是最好的方法吗 比如说,如果我有一个音乐数据库,我想按流派对音乐进行分类。如果我允许一张专辑有多种风格,我是否将它们存储为数组并序列化?像这样Php 如何在MySQL的一个单元格中为单个项存储多个值,php,mysql,Php,Mysql,序列化是最好的方法吗 比如说,如果我有一个音乐数据库,我想按流派对音乐进行分类。如果我允许一张专辑有多种风格,我是否将它们存储为数组并序列化?像这样 $array=serialize(数组(1,2,3))//数字是类型的ID 我是从这里的另一个帖子上得到的。我知道我可以把它们拆开。我不明白的是如何编写SQL语句来检索部分或全部数据。如果要检索给定唱片集的所有类型,我的SQL语句会是什么样子?这取决于您要运行的查询,但您应该将类型放入自己的表中: Genre id | name 并创建一个将相册
$array=serialize(数组(1,2,3))代码>//数字是类型的ID
我是从这里的另一个帖子上得到的。我知道我可以把它们拆开。我不明白的是如何编写SQL语句来检索部分或全部数据。如果要检索给定唱片集的所有类型,我的SQL语句会是什么样子?这取决于您要运行的查询,但您应该将类型放入自己的表中:
Genre
id | name
并创建一个将相册与流派关联的表:
Album_Genre
album_id | genre_id
您确实希望将数据标准化,并将流派和唱片集到流派的关联存储在不同的表中
i、 e:你最好有三张桌子:
相册相册数据
流派流派数据
唱片集->流派查找形成每个关联的唱片集id和流派id
通过这样做,您将能够根据将来的需要轻松地添加/删除等类型,并且能够通过加入表来执行查找,而不必执行字符串操作。您应该使用
维基百科关于的文章有一个很好的例子,涉及到有多个电话号码的人 不要
对于多对多关系,您需要第三个表:
songs: id, name, ...
genres: id, name, ...
relation_songs_genres: song_id, genre_id
你试图建立一种多对多的关系(音乐与流派)。因此,您应该创建一个单独的表(流派),然后创建一个交叉引用表(音乐流派),其中包含来自音乐和流派表的ID。或者我应该以另一种方式存储数据,因为我将有一个很长的类型列表。如果我只想从序列化数组中获取其中一个值呢?非常相关的问题:我可以为一张专辑存储多个类型吗?@shummel7845是的。您只需在相册->流派查找表中为该相册添加两个条目即可。+1按流派提取相册的sql是SELECT*from-Genre-inner-join-Album\u-Genre-on-Genre\u-id=id,其中name='reagge'