在數據庫中,那裏是一個多對多的關係(比如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