多对多关系SQLite(studio或sql)

2024-05-19 13:09:30 发布

您现在位置:Python中文网/ 问答频道 /正文

你好。在我看来,我只是不明白一些数据库中显而易见的东西。你知道吗

所以,我们有一个作家写的书,自己也有书。一个作者可以写很多书,就像一本书可以由许多作者写一样。你知道吗

因此,我们有两个表“Books”和“Authors”。你知道吗

在“Authors”中,我有一个“ID”(主键)和“Name”,例如:

1-L.Carrol

2-D.Brown

在“Books”-“ID”中(公共密钥)、'Name'和'Authors'(此列是'Authors'表ID的外键)

一些名字(L.Carol)

2-另一个名字-2,1(D.Brown,L.Carol)

这是我的绊脚石,因为我不知道如何提供从“Authors”表到“Books”中的一列中选择多个值的可能性桌子。但是这一定很简单吧? 我已经了解了多对多关系,看到了许多添加额外表以实现该关系的示例,但仍然不了解如何将一个表中的多个值存储在另一个表的表列中。请解释一下逻辑,我该怎么做?我使用SQLiteStudio,但是clearsql也是合适的。帮助^(


Tags: nameid数据库关系密钥作者名字books
1条回答
网友
1楼 · 发布于 2024-05-19 13:09:30

您应该有第三个中间表,其中包含以下列:

  • id(主要)
  • 作者id(来自作者表)
  • 图书id(来自图书表)

这样你就可以创建一个记录,将一个作者映射到一本书。所以你可以有以下记录:

  • 1。。。作者ID。。。帐簿ID
  • 2。。。作者ID。。。Book2ID
  • 三。。。Author2ID。。。Book2ID

AuthorXIDBookXID-来自相应表的外键。你知道吗

所以Book2有两个作者,Author1有两本书。你知道吗

另外,书籍和作者的单独表格不需要包含任何信息,除了它本身。你知道吗

作者。。1-很多。。作者的书。。多-1。。书籍

相关问题 更多 >