我正在开发一个电影统计网站,我正试图找出什么是最好的方式去数据库。
这个网站是关于电影的。但每部电影都有不同的领域。我需要帮助找出存储这些数据的最佳方法。
例如。我有一张叫做“电影”的桌子。这将有所有的一般信息。但对于一些电影,我希望他们有自己的领域与其他信息。
我可以为每部电影创建一个表,但是在电影数量增加之后,它将使数据库看起来非常混乱和无组织,这是我不想要的。然后我可以为“movies”表构建占位符字段,但可能需要一个或两个,或者可能需要10个或20个额外字段。
有人能推荐我应该怎么做吗?
谢谢你
最佳答案
处理这种情况的一个简单方法是创建一个movie attributes表,其中该表中的每个记录表示特定电影的单个属性。下面这样的表定义可能有意义:
CREATE TABLE movie_attribute (
movie_attr_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
movie_id NOT NULL
attr_name VARCHAR(255) NOT NULL,
attr_value VARCHAR(255) NOT NULL,
FOREIGN KEY fk_movie(movie_id) REFERENCES movies(id)
)
使用此设计,可以为给定的电影添加任意数量的属性,而无需进行大的设计更改。数据库表的设计是为了方便地按行增长,而不是按列增长。