在数据库中,那里是一个多对多的关系(比如3台这样的举例)SQL插入在AJAX形式
Book | Author | BookAuthor
_____ | ______ | __________
BookId | AuthorId | BookId
Title | Name | AuthorId
... | ... |
我想要一个窗体来创建一个新的书。在这种形式下,用户将输入关于该书的信息(标题等),并且他们将通过相同的表格选择该书的作者。
在这样的情况下,你什么时候在Book表中插入?你这样做的时候:
您访问的形式,让您获得BOOKID,并且可以在BOOKAUTHOR表作为用户添加的作者插入?
只有当用户离开表单(您插入书本,然后插入BookAuthor)时才能做到这一点?
对于1,最终可能会产生一堆不需要的记录,因为即使用户离开页面或点击取消时也会创建记录。
对于2,您没有BookId,因此您无法开始在BookAuthor表中插入,直到整个表单被填充(然后您无法真正使用AJAX)。
这似乎是一个相当普遍的情况,所以我想这样做有一个正确的方法?
编辑:作者可以添加像标签被添加到堆栈溢出(自动完成框)的问题,就像它在答案中建议的一样。您添加一个标签,但不能立即插入,因为该问题在数据库中尚不存在。所以当你提交你的问题时,我猜测自动完成框的内容被解析,并且同时插入(标签和问题)。我不知道它是如何完成的(解析或其他),但这基本上是我试图找出。
感谢您的回答。当你说“完成之后,你将拥有书籍ID”。这就是我真正想问的。你有你的AuthorID(通过插入或查找),但表单尚未提交(因为用户没有立即点击OK)。那么你对你的ID做什么?您只需将您的作者留在那里,当用户单击确定时,您将解析ID(或名称)的自动完成作者框?我同意你所提出的一切,这只是我无法想象的时机。 – 2010-06-29 20:15:54