情況是這樣的,寫文章的時候需要用 ajax 插入文件、圖片。
附件 attachments 表裡有
object_model
object_type
object_id
這幾個字段。
而文章表不記錄任何附件信息。
attachments 表中的 object_id 就是文章對應 id ,所以寫入 attachments 表的時候,需要獲得這個 id ,但文章沒發的時候是不會有這個 id 的。
那麼:
1 ,用 max ()+1 的方式去猜測文章發佈出來的 id ,但這樣單用戶還好,多用戶併發就會有預想不到的問題。
2 ,插入文件的 object_id 為 0 ,提交文章的時候再批量更新,但是這樣一來,如果文章最後沒提交,上傳的文件就白上傳了,因為沒入庫,後期無法查詢到這些附件並清除。
3 ,新建文章的時候先 init ,也就是當成編輯處理,但這樣也有缺陷,那就是可能導致文章 id 不連貫的問題。
所以,想問問大家有沒有更好的方案?