我正在为一个项目制作一个基本的电影在线商店,我希望用户能够按类型选择电影,例如:
在数据库中存储电影以匹配此结构的最佳方法是什么。
First Way
按照类型对电影进行排序,并创建单独的表格,也就是说,一个表用于动作类型,一个用于纪录片,一个用于科幻和其他类型。使用这种方法,没有明确的方法可以加入表来生成所有电影的列表。
第二道
将所有电影放在一个表中,将类型放在另一个表中,并根据类型在2之间建立外键关系。
或者还有其他更好的方法来做这件事?
提前感谢
发布于 2012-06-07 23:09:00
这不是你的第一条路:这不是一个关系数据库,因为你重复喜欢的信息。
第二种方式是比较合适的,如果你想成为关系型的。电影在一个表中,MovieType在另一个表。
“电影”表包含一个FK到MovieType,其中列出了该类型的名称。
发布于 2012-06-07 23:12:49
我想你指的是体裁,而不是性别。)我不认为鹈鹕有性别。就我个人而言,我会创建3张桌子。电影(Peliculas)、体裁和一个带有两者Ids的查找表。这将允许一部电影在多个搜索中出现--这可能是你想要的。例如,一部关于披头士乐队的电影可能有音乐和纪录片两种类型,如果用户搜索其中一种,就会以这种方式出现。
水蚤( Peliculas (Table1) )
PeliculaId
other cols (name, etc)体裁(Table2)
GenreId
GenreDescriptionPelGenre (Table3)
PeliculaId FK
GenreId FK水蚤( Peliculas )
------------
PeliculaId Name Descript
------------------------------------------------------------------------------------------------
1 The Beatles Anthology Documentary series on The Beatles career
2 The Shawshank Redemption 2 good guys in jail become friends and get back at everyone
3 Star Wars Farm Boy saves Galaxy体裁
GenreId Descript
----------------------------------
1 Action
2 Crime
3 Drama
4 ScienceFiction
5 Documentary
6 MusicPelGenre
PeliculaId GenreId
------------------------
1 5
1 6
2 2
2 3
3 4
3 1发布于 2012-06-07 23:11:28
有两张桌子;一张是电影的,一张是类型的。
Movies {id, title, genre_id}
Genres {id, name}按体裁查询:
SELECT * FROM Movies WHERE genre_id = ?要查询所有类型,只需从WHERE子句中删除genre_id部件即可
SELECT * FROM Movieshttps://stackoverflow.com/questions/10941051
复制相似问题