我試圖做到的,是的,我想給用戶和文件夾表的表值自動更新關係表。由於這是一個多對多的關係,我創建了user_folders表。目前服務器(nodejs)通過userid,clientfolderid和一些書籤數組(現在不重要)獲取請求。它通過選擇user_folders表來檢查用戶是否已經擁有此文件夾,如果它不存在,則向文件夾表插入新行。然後它必須發送另一個語句來插入user_folders表。
所以我必須「手動」保留users_folder表更新。我想這是一個常見的問題,並想知道是否有模式或經過驗證的解決方案?奇怪的是,MySQL自動處理刪除帶有AFTER DELETE觸發器的行,但是沒有(至少我知道)帶有AFTER INSERT觸發器的自動化。
正如我已經說過一個AFTER INSERT觸發器可能可以解決它,但我認爲不可能將一些額外的參數傳遞給AFTER INSERT觸發器。這是我的情況下的user_id和folder_client_id。
我在想,我可以創建另一個表名爲tmp_folder它看起來像一個解決方案:
tmp_folder
-- id
-- title
-- changed
-- user_id
-- folder_client_id
再經過這個表,插入到文件夾和user_folders,然後刪除INSERT觸發器創建再次從tmp_folder開始的行。這是正確的方式還是有更好的?
我基本上會做同樣的書籤和user_bookmarks表。最好的情況是,如果甚至可以插入文件夾,然後將所有者插入到user_folders表中,並將user_id和folder_client_id,然後將多個其他用戶分配到user_folders,並且user_id和默認folder_client_id爲-1或將會成爲稍後更新。
同時感謝您的閱讀,我希望你能幫助我:)
PS:是否有一個名字爲其他2個表之間的表中的M-2-M的關係?
這是個好主意。這不是一個常見問題嗎? – 2013-05-11 09:28:39