我不是sql/sqlite方面的专家。。 假设我们有两张桌子:
CREATE TABLE child (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT,
);
CREATE TABLE MyTableB(
dog TEXT,
FOREIGN KEY(dogList) REFERENCES child(id)
);
如何插入?是否正确的createTable操作? 我想要: 一个孩子可以养多条狗 狗可以多生孩子
如果我想让所有的孩子和每个孩子都有一份和那个孩子有关的狗的名单呢?
多对多
为了支持一个具有零个或多个狗的子级和一个属于零个或多个子级的狗,您的数据库表结构需要支持一个多对多关系。这需要三张桌子:
如何插入
三个表中的每一个表都必须是单独的SQL语句,但可以在同一事务的上下文中进行插入。插入子狗表(称为映射表)必须在插入子狗表和狗表之后进行。这有两个相关原因:
下面是一些用于插入的SQL语句示例:
在Python中插入
虽然您的问题没有提到python,但是在这个问题上有一个python标记,所以我假设您想知道如何在python中实现这一点。python中的sqlite3模块提供了一个很好的小快捷方式,省去了必须显式运行“last_insert_rowid()”函数的麻烦。
你得有三张桌子。这是
Many-to-Many
关系的一个例子。相关问题 更多 >
编程相关推荐