gpt4 book ai didi

database - 数据库中的一对多关系-设计概念

转载 作者:太空狗 更新时间:2023-10-30 01:45:11 24 4
gpt4 key购买 nike

两个表之间的一对多关系应该用两个表还是三个表来实现?例如我们应该有:

author(id,otherAttributtes)
books(id,authorid,otherAttributes)

 author(id,otherAttributtes)
books(id,otherAttributes)
authorConnectsBooks(authorid,booksid)

我更喜欢第一种方法,但我在更复杂的应用程序中看到过很多次第二种方法。第一种方法是否有任何缺点,或者只是个人遵循哪种方法?

最佳答案

第一个示例显示一对多关系,而第二个示例显示多对多关系。

例子假设我们使用第一个例子

Author
AuthorID

Book
BookID
AuthorID

您如何表示 Jane 和 Jon 都写了“Stackoverflow for fun”这本书?在这个关系表中你不能,你已经表达了一个作者可以写很多书。所以要么是简写的,要么是乔恩写的。如果他们中只有一个人写过书,那么您可以使用这种关系类型。然而,如果你想证明这本书是两人写的,你需要多对多的关系。

现在使用 Jane 和 Jon 的相同类比,您可以使用第二个示例代表这本书的两位作者 - 多对多关系。


让我们以 Stackoverflow 为例,以一对多关系开始,以多对多关系结束:

Authors
Joel
Jeff

Books
Stackoverflow Joel

可怜的 Jeff,上例中的 stackoverflow 并没有归功于他...所以我们需要解决这个问题:

Author
Joel
Jeff

Books
Stackoverflow

AuthorBooks
Stackoverflow Jeff
Stackoverflow Joel

现在每个人都很开心......

关于database - 数据库中的一对多关系-设计概念,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10145321/

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