2015-02-06 106 views
0

说我是否有3个tabeles:Reader,Book,Readers_book。MySQL中的关系数据库

读者

#email,姓名,密码

#BookID,FK BOOKNAME,的BookType

ReadersBook

#ReaderBookID,BOOKNAME,FK电子邮件

我将如何执行插入语句当读者需要新书时填充这些表格。鉴于读者已经有了电子邮件,姓名和密码。我会使用连接还是执行两个单独的插入语句?

还是任何人都能推荐一个更好的方式来模拟这种数据?

+0

据我所知,您可以使用只能加入一个选择。首先写入依赖的行(Book和Reader /如果不存在),然后插入到读者手册 – 2015-02-06 13:30:27

+0

将'INSERT或IGNORE'工作在具有AUTOINCREMENT行的表上 – user3723666 2015-02-06 14:26:10

+0

您可以覆盖任何列,甚至自动增量。不知道你对IGNORE的意思。您应该将您的插入包装在COMMIT中。 – 2015-02-06 14:34:30

回答

0

更灵活的模型应该是...

enter image description here

...你将不得不分别插入到每个表。

+0

实际上,除了它显示为类图之外,OP的模型没有区别。所以它不是更灵活。 – 2015-02-06 14:32:46

+1

使用ID来关联数据意味着不需要在多个地方改变“书名”之类的东西,我会更灵活地调用它。 – neokio 2015-02-06 14:36:36

+0

是的。这并不明显。在列中重复表名是不好的设计。 – 2015-02-06 14:44:42

0

您不能在插入,更新和删除命令中使用连接,但可以使用多个语句并用';'分隔

插入到表1(COL1,COL2)值(?,?);(?)插入到表2(COL1,COL2)vslues