Sij*_*ose 0 mysql sql database
我想知道如何在sql列中存储多个值,或者哪个是在sql列中存储值的最佳方法.
在电影表中考虑,电影将具有多种类型,
例如,
类型:"动作,冒险,幻想"
类型:"冒险,戏剧,幻想,惊悚"
,这是将类型值存储在数据库中的最佳方式.
这是一种经典的n到m关系.它的工作原理如下
movies table
------------
id
name
...
genres table
------------
id
name
movie_genres table
------------------
movie_id
genre_id
Run Code Online (Sandbox Code Playgroud)
movie_genres然后该表包含电影的每个类型的一个记录.例:
movie_genres
------------
movie_id | genre_id
1 | 1
1 | 2
1 | 13
Run Code Online (Sandbox Code Playgroud)
要获得电影的类型,请执行以下操作:
select g.name as genre_name
from genres g
join movie_genres mg on mg.genre_id = g.id
join movies m on m.id = mg.movie_id
where m.name = 'star wars'
Run Code Online (Sandbox Code Playgroud)