mysql - 在 MariaDB 中创建桥表

标签 mysql mariadb

我正在尝试创建将两个表与 MariaDB 中的桥接表链接在一起。该表本身称为“ActsIn”,位于“Actors”表和“Movies”表之间。

在我的 ER 图中,“ActsIn”表包含 3 个属性 -

  1. “ActsIn”表的主键,它是由以下两个外键组成的复合主键。
  2. ActorName(引用“Actors”表中主键的外键)
  3. 标题(引用“电影”表中主键的外键)

当我在 MariaDB 中创建此表时,我是否将复合主键视为一个名为 ActorName/Title 的属性?

//Create table ActsIn
//
CREATE TABLE IF NOT EXISTS ActsIn (
ActorName/Title VARCHAR(255) NOT NULL,
ActorName VARCHAR(255) NOT NULL,
Title VARCHAR(255) NOT NULL,
PRIMARY KEY (ActorName/Title)
);

或者创建 2 个属性字段 ActorName 和 Title,然后创建引用这两个属性的主键?

CREATE TABLE IF NOT EXISTS ActsIn (
ActorName VARCHAR(255) NOT NULL,
Title VARCHAR(255),
PRIMARY KEY (ActorName, Title)
);

最佳答案

您通常会有一个类型转换(actor_id*、name)、一个电影表(movie_id*、title)和一个相互关联的表(actor_id*、movie_id*) - * = (的组成部分)主键

如果一个 Actor 可以在同一部电影中扮演多个角色,那么您可能需要稍微修改此模型。

关于mysql - 在 MariaDB 中创建桥表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59127651/

相关文章:

mysql - 除了在 mysql 中替换?

java - Hibernate/mysql 连接问题

MySQL/MariaDB 添加列文档

mysql - 配置 MAMP 以使用 mariadb

mysql - 将具有不同值的行合并为一行

MySQLFrequency频率报告

mysql - sql查询交叉表

mysql - 无限制地从表中选择第二大的

mysql - 玛丽亚数据库。使用事务回滚而不锁定表

php - 从 mysql 数据为用户分配并显示排名