我正在建立一个电影网站...我需要显示每部电影的信息,包括流派,演员和很多信息(像IMDB.com一样)......
我创建了一个包含ID和一些基本信息的"电影"表.对于类型我创建了一个'genres'表,包括2列:ID和流派.然后我使用一个'genres2movies'表,其中包含两列:movieID和genreID,用于连接流派和电影表...
这样,例如,如果一部电影有5种不同的类型,我会在'genres2movies'表的5个不同行中获得movieID.每次为每部电影都包括类型,但是...
有一个更好的方法来做到这一点???
我还需要为演员,语言和国家这样做,因此性能和数据库大小非常重要.
谢谢!!!
听起来你现在正在遵循正确的规范化规则,这正是你想要的.
但是,您可能会发现,如果性能是一个关键因素,您可能希望对数据的某些部分进行反规范化,因为表之间的JOIN是相对昂贵的操作.
这通常是正确/完全标准化和性能之间的权衡
你走在正确的轨道上.这是做多对多关系的方式.数据库大小不会增长太多,因为您使用整数,为了提高速度,您必须为这些ID设置正确的索引.在进行SELECt查询时,请查看EXPLAIN - 它有助于找到速度的瓶颈.