0

你好。在我看来,我只是不明白数据库中的一些非常明显的东西。

所以,我们有一个写书的作者自己也有书。一个作者可以写很多本书,而一本书可以由多个作者写。

因此,我们有两个表“书籍”和“作者”。

在“作者”中,我有一个“ID”(主键)和“名称”,例如:

1 - L.卡罗尔

2 - D.布朗

在 'Books' - 'ID' (pr.key)、'Name' 和 'Authors' (并且此列是 'Authors' 表 ID 的外键)

1 - Some_name - 2 (L.Carol)

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

这是我的绊脚石,因为我不明白如何提供从“作者”表中选择多个值到“书籍”表中的一列的可能性。但这一定很简单,不是吗?我对多对多关系感到不满,看到了许多添加额外表的示例来实现这一点,但仍然不明白如何将一个表中的多个值存储在另一个表的列中。请解释一下逻辑,我应该怎么做这样的事情?我使用 SQLiteStudio,但清除 sql 也是合适的。帮助^(

4

1 回答 1

3

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

  • id(主要)
  • 作者 ID(来自 Authors 表)
  • 书籍 ID(来自 Books 表)

这样,您将能够创建将 1 个作者映射到 1 本书的记录。所以你可以有以下记录:

  • 1 ... Author1ID ... Book1ID
  • 2 ... Author1ID ... Book2ID
  • 3 ... Author2ID ... Book2ID

AuthorXIDBookXID - 来自相应表的外键。

所以 Book2 有 2 个作者,Author1 有 2 本书。

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

作者 .. 1---许多 .. 书籍作者 .. 许多---1 .. 书籍

于 2018-07-28T16:15:22.253 回答