基于web的电影点评系统的设计与实现概念结构设计逻辑结构设计3.物理结构设计用户的创建及权限授予并且创建至少5个表并且插入数据创建视图创建索引以及设计多表连接查询
时间: 2023-06-17 14:06:55 浏览: 50
3. 物理结构设计
在物理结构设计中,需要考虑数据库服务器的配置及存储容量,选择合适的数据库管理系统(如MySQL、Oracle等),并将概念结构和逻辑结构转化为具体的物理结构。
在本电影点评系统的物理结构设计中,我们选择MySQL作为数据库管理系统,并按照概念结构和逻辑结构设计创建了以下5个表:
1. 用户表(user):存储用户的基本信息,如用户名、密码、邮箱等。
2. 电影表(movie):存储电影的基本信息,如电影名、导演、演员、类型等。
3. 评论表(comment):存储用户对电影的评论信息,如用户ID、电影ID、评论内容、评分等。
4. 收藏表(collection):存储用户收藏的电影信息,如用户ID、电影ID等。
5. 权限表(permission):存储用户的权限信息,如用户ID、权限类型等。
在创建表后,需要对表中的数据进行插入操作,以便后续的查询和操作。例如,可以在用户表中插入几条记录,如下所示:
```
INSERT INTO user (username, password, email) VALUES ('user1', '123456', 'user1@example.com');
INSERT INTO user (username, password, email) VALUES ('user2', '123456', 'user2@example.com');
INSERT INTO user (username, password, email) VALUES ('user3', '123456', 'user3@example.com');
```
创建视图可以方便用户进行数据查询,在本系统中,我们可以创建一个电影评论视图(movie_comment_view),用于显示电影的评论信息。例如,可以创建如下视图:
```
CREATE VIEW movie_comment_view AS
SELECT movie.movie_id AS movie_id, movie.movie_name AS movie_name, comment.comment_content AS comment_content, comment.comment_score AS comment_score
FROM movie
INNER JOIN comment ON movie.movie_id = comment.movie_id;
```
在本系统中,还可以设计多表连接查询,以实现更复杂的数据查询操作。例如,可以查询用户收藏的电影及其评论信息,如下所示:
```
SELECT movie.movie_name AS movie_name, comment.comment_content AS comment_content, comment.comment_score AS comment_score
FROM movie
INNER JOIN collection ON movie.movie_id = collection.movie_id
INNER JOIN comment ON collection.user_id = comment.user_id AND collection.movie_id = comment.movie_id
WHERE collection.user_id = 'user1';
```
最后,为了提高查询效率,我们可以创建索引。例如,在电影表中创建电影名的索引,如下所示:
```
CREATE INDEX movie_name_index ON movie (movie_name);
```