多对多关系 SQLite (studio or sql)
Many to many relationship SQLite (studio or sql)
你好。在我看来,我只是不了解数据库中很明显的东西。
所以,我们有一位写书的作者,并且自己也有书。一个作者可以写很多书,一本书可以由很多作者写。
因此,我们有两个 tables 'Books' 和 'Authors'。
在'Authors'中我有一个'ID'(主键)和'Name',例如:
1 - L.Carrol
2 - D.Brown
在 'Books' - 'ID' (pr.key), 'Name' 和 'Authors'(并且此列是 'Authors' 的外键table身份证号)
1 - Some_name - 2 (L.Carol)
2 - Another_name - 2,1 (D.Brown, L.Carol)
这是我的绊脚石,因为我不明白如何提供从 'Authors' table 中选择多个值到 'Books' [=65] 中的一列的可能性=] 这一定很简单,不是吗?
我对多对多关系很感兴趣,看到很多例子都添加了额外的 table 来实现它,但仍然不明白如何将一个 table 的多个值存储在另一个 table 列。请解释一下逻辑,我应该怎么做?我使用 SQLiteStudio 但 clear sql 也是合适的。帮忙^(
你应该有第三个中间体 table 它将有以下列:
- id(主要)
- 作者 ID(来自作者 table)
- 图书 ID(来自图书 table)
这样您就可以创建一条记录,将 1 位作者映射到 1 本书。所以你可以有以下记录:
- 1 ... Author1ID ... Book1ID
- 2 ... Author1ID ... Book2ID
- 3 ... Author2ID ... Book2ID
AuthorXID 和 BookXID - 来自相应 tables.
的外键
所以 Book2 有 2 位作者,Author1 有 2 本书。
此外,书籍和作者的 table 不需要包含除自身以外的任何信息。
作者 .. 1---许多 .. BOOKSFORAUTHORS .. 许多 ---1 .. 书籍
你好。在我看来,我只是不了解数据库中很明显的东西。
所以,我们有一位写书的作者,并且自己也有书。一个作者可以写很多书,一本书可以由很多作者写。
因此,我们有两个 tables 'Books' 和 'Authors'。
在'Authors'中我有一个'ID'(主键)和'Name',例如:
1 - L.Carrol
2 - D.Brown
在 'Books' - 'ID' (pr.key), 'Name' 和 'Authors'(并且此列是 'Authors' 的外键table身份证号)
1 - Some_name - 2 (L.Carol)
2 - Another_name - 2,1 (D.Brown, L.Carol)
这是我的绊脚石,因为我不明白如何提供从 'Authors' table 中选择多个值到 'Books' [=65] 中的一列的可能性=] 这一定很简单,不是吗? 我对多对多关系很感兴趣,看到很多例子都添加了额外的 table 来实现它,但仍然不明白如何将一个 table 的多个值存储在另一个 table 列。请解释一下逻辑,我应该怎么做?我使用 SQLiteStudio 但 clear sql 也是合适的。帮忙^(
你应该有第三个中间体 table 它将有以下列:
- id(主要)
- 作者 ID(来自作者 table)
- 图书 ID(来自图书 table)
这样您就可以创建一条记录,将 1 位作者映射到 1 本书。所以你可以有以下记录:
- 1 ... Author1ID ... Book1ID
- 2 ... Author1ID ... Book2ID
- 3 ... Author2ID ... Book2ID
AuthorXID 和 BookXID - 来自相应 tables.
的外键所以 Book2 有 2 位作者,Author1 有 2 本书。
此外,书籍和作者的 table 不需要包含除自身以外的任何信息。
作者 .. 1---许多 .. BOOKSFORAUTHORS .. 许多 ---1 .. 书籍