gpt4 book ai didi

database - 你能/如何建立一个数据库,其中两个项目之间有多种关系

转载 作者:搜寻专家 更新时间:2023-10-30 19:59:21 24 4
gpt4 key购买 nike

为此,我有三明治和厨师。

三明治有一个键,它的主键,- 名字。

Chef有它的主键——Cid,其他信息键,如姓名、年龄等

我需要的关系是

SignatureSandwich,每个厨师都有一个三明治,这是他们的主要创作。一对一

LikesSandwich,每个厨师都可以喜欢吃任意数量的三明治(可能不包括他们自己的招牌三明治),并且任何三明治都可以被任意数量的厨师喜欢。多对多

这是否仅通过两个关系来实现,每个关系都有外键 Cid 和 Sandwich.Name,还是有更好的方法来实现?

最佳答案

我看到 SignatureSandwich 是 Chef 的属性,即 tblChef 中的一列。 SignatureSandwich 应该与 tblSandwich.Name 有外键关系。

LikesSandwich 关系我将使用一个新表 tblSandwichPreference 建模,它有两列:Cid 和 SandwichName。

在 tblSandwichPreference 中,Cid 应该有一个指向 tblChef.Cid 的外键,而 SandwichName 应该有一个指向 tblSandwich.Name 的外键。

一些有用的查询:

-- Query all chefs who like a particular sandwich
SELECT * FROM tblSandwichPreference
JOIN tblChef ON tblChef.Cid = tblSandwichPreference.Cid
WHERE tblSandwichPreference.SandwichName = @SandwichName

-- Query all sandwiches preferred by a particular chef
SELECT * FROM tblSandwichPreference
JOIN tblSandwich ON tblSandwich.Name = tblSandwichPreference.SandwichName
WHERE tblSandwichPreference.Cid = @ChefID

关于database - 你能/如何建立一个数据库,其中两个项目之间有多种关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19249686/

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