我正在开发一个电影统计网站,我正在尝试找出数据库的最佳方法。
该网站是关于电影的。但是每部电影都会有不同的领域。我需要帮助找出存储这些数据的最佳方式。
例如。我有一张名为“电影”的 table 。这将包含所有一般信息。但是对于一些电影,我希望它们有自己的字段和其他信息。
我可以为每部电影创建一个表,但随着电影数量的增加,它会使数据库看起来非常困惑和无组织,这是我不希望看到的。然后我可以为“电影”表构建占位符字段,但我可能需要一两个,或者我可能需要 10 或 20 个额外字段。
谁能推荐我应该用什么方法来处理这个问题?
谢谢
处理您的情况的一种简单方法是创建电影属性表,其中该表中的每条记录都代表某部电影的单个属性。像下面这样的表定义可能有意义:
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)
)
使用这种设计,可以为给定的电影添加任意数量的属性,而无需进行大的设计更改。数据库表被设计成可以舒适地按行增长,而不是按列增长。