【发布时间】:2020-08-05 06:32:24
【问题描述】:
我是创建关系数据库架构的新手。我正在创建一个非常基本的数据表,其中有两个数据表。
CREATLE TABLE Authors (
idAuthors INT NOT NULL auto_increment,
Name VARCHAR(50) NOT NULL,
Birthplace VARCHAR(50) NOT NULL,
PRIMARY KEY (idAuthors));
CREATLE TABLE Shops(
idShops NOT NULL auto_increment,
Name_shop VARCHAR(50) NOT NULL,
Name_authors VARCHAR(50) NOT NULL,
Location VARCHAR(50) NOT NULL
PRIMARY KEY (idShops));
我的问题是您是否应该在每个表或中间表中都有一个外键:
CREATLE TABLE intermediate(
PRIMARY KEY (idShops),
PRIMARY KEY (idAuthors));
这对吗?
谢谢!
【问题讨论】:
-
它只取决于你想要什么。如果是多对多关系,则无法通过其他方式完成。
-
这是正确的吗? 不可以。该表不能有 2 个 PK,也不能没有列。
-
我在 authors 表中的每一行都有一个不同的作者,但在 stores 表中一个作者可能出现多次。 @ÁlvaroGonzález
-
中间表应该怎么做? @Akina
-
您没有为您的设计/代码提供满足/模型/实现/记录的规范,因此我们不知道您“应该”拥有什么。请通过编辑而不是 cmets 进行澄清。 PS 是时候关注已出版的关于信息建模、关系模型和数据库设计与查询的学术教科书了。 (用于记录和使用设计的语言和工具的手册不是这样的教科书。)(维基文章或网络帖子也不是。)问一个特定的问题。
标签: mysql database-design foreign-keys