gpt4 book ai didi

sql - 在哪里存储交叉引用的 SQL 值?

转载 作者:行者123 更新时间:2023-12-04 18:22:28 24 4
gpt4 key购买 nike

我正在构建一个包含两个表的电影数据库,一个包含电影名称,另一个包含 Actor 姓名。如何交叉引用数据?

例如,电影名称表中的条目应该包含每部电影的 Actor 列表,还是 Actor 名称表中的条目应该包含 Actor 的电影列表?

最佳答案

您将需要一个连接两者的附加表,并且至少包含电影 ID 和 Actor ID 作为其列。假设您的 Actors表有 actor_id作为它的主键,Moviesmovie_id作为其主键。该表还可以包括关于特定于该电影的 Actor 的信息,例如,角色的姓名或其他与角色相关的信息。

CREATE TABLE actors_in_movies (
/* Use whatever auto increment keyword is needed for your RDBMS */
id INT NOT NULL PRIMARY KEY <auto increment>,
actor_id INT,
movie_id INT,
character_name VARCHAR(),
other_character_info VARCHAR(),
character_best_quote TEXT,
FOREIGN KEY (actor_id) REFERENCES actors (actor_id),
FOREIGN KEY (movie_id) REFERENCES actors (movies_id)
);

要查询一个 Actor 出现的所有电影,

使用一些东西来达到以下效果:
SELECT
actors.*,
movies.name
FROM
actors
JOIN actors_in_movies ON actors.actor_id = actors_in_movies.actor_id
JOIN movies ON movies.movie_id = actors_in_movies.movie_id
WHERE actors.actor_id = <some actor id>

要查询特定电影中的所有 Actor ,

使用一些东西来达到以下效果:
SELECT
actors.*
FROM
actors
JOIN actors_in_movies ON actors.actor_id = actors_in_movies.actor_id
JOIN movies ON movies.movie_id = actors_in_movies.movie_id
WHERE movies.movie_id = <some movie id>

要将 Actor 添加到电影中,请在 actors_in_movies 中插入一行。 table :
INSERT INTO actors_in_movies (actor_id, movie_id) VALUES (..., ...);

关于sql - 在哪里存储交叉引用的 SQL 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10389019/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com