gpt4 book ai didi

sql - 将 "Arnold Schwarzenegger"和 "Hasta la vista baby"插入到这两个空 SQL 表中,我的 SQL 语句是什么?

转载 作者:行者123 更新时间:2023-12-02 07:11:49 27 4
gpt4 key购买 nike

如果将“Arnold Schwarzenegger”和“Hasta la vista baby”插入到以下空 SQL 表中,我的语句是什么?

这个问题的标题本来是“如何将第一条记录插入到具有双向关联和自动生成整数PK的SQL表中?”但我不确定我的措辞是否正确...基本上,我有两个表 ActorsCatchPhrases

Actor 看起来像:

  ActorId                  int             NOT NULL  PK (autogenerated by db)
FavoriteCatchPhraseId int NOT NULL FK
Name varchar(200) NOT NULL

CatchPhrases 看起来像:

  CatchPhraseId            int             NOT NULL  PK (autogenerated by db)
ActorId int NOT NULL FK
PhraseText varchar(500) NOT NULL

因此,Actor 可以有多个流行语,但必须至少有一个。流行语与 Actor 相关联。两个表中目前都没有数据。

最佳答案

我会以不同的方式建模以避免双向关系(这很难做到)。只需将一列 (IsFavorite) 添加到 CatchPhrases 表。在代码中使用约束或业务规则将每个 Actor 标记为最喜欢的流行语的数量限制为一个。

Actor :

ActorId                  int             NOT NULL  PK (autogenerated by db)
Name varchar(200) NOT NULL

流行语:

CatchPhraseId            int             NOT NULL  PK (autogenerated by db)
ActorId int NOT NULL FK
PhraseText varchar(500) NOT NULL
IsFavorite bit NOT NULL

确保您在 CatchPhrases 表的 ActorId 上有一个索引,以便您可以快速找到 Actor 的流行语。

或者,使用连接表——这将允许多个参与者拥有相同的口号。

Actor :

ActorId                  int             NOT NULL PK (autogenerated by db)
Name varchar(200) NOT NULL

ActorCatchPhrases

ActorId                  int             NOT NULL PK (FK to Actors)
CatchPhraseId int NOT NULL PK (FK to CatchPhrases)
IsFavorite bit NOT NULL

流行语

PhraseId                 int             NOT NULL PK (autogenerated by db)  
PhraseText varchar(500) NOT NULL

关于sql - 将 "Arnold Schwarzenegger"和 "Hasta la vista baby"插入到这两个空 SQL 表中,我的 SQL 语句是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5205473/

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