2015-09-28 48 views
0

我將圖像存儲在文件系統中並更新數據庫中的圖像路徑。如何使用休眠功能在數據庫中交換ID

表結構

photo_id,USER_ID,photo_no,PHOTO_URL

用戶可以上傳最多5張照片。 photo_no是我存儲訂單的字段。第一張照片將永遠是主要照片。但用戶可以將任何照片作爲主要照片,並且他們也可以安排照片。

如果用戶想將第三張照片製作爲主要照片(photo_no 1)。然後,我必須將photo_no 3更新爲一些虛擬臨時號碼,並用3更新photo_no 1,並用1更新臨時號碼。這樣我可以交換照片。但我認爲這不是一個好方法。任何人都可以提出一個好的方法來做到這一點

是否可以通過良好的桌面設計來處理這種情況?

回答

1

如果照片順序可以保持不變,我建議你引入一個新的標誌(列)。所以你可以有:

photo_id, user_id, photo_no, photo_url, is_main_photo 

並只把1爲主要照片和0爲其他照片。

+0

謝謝。照片訂單不會保持不變,但我可以引入新的專欄並維護訂單。 1,3 | 2,1 | 3,3 | 4,5 | 5,5(照片,順序) - 第二張照片是主照片。但不知道如果更改表,如果有些更改順序。 – user3909315

+0

如果你真的需要交換兩張照片的photo_no,那麼你的桌子設計就足夠了。 您可以使用Hibernate以編程方式交換訂單號。 我不確定你的持久層是怎麼樣的,但你可以這樣做: 'mainPhoto.setPhotoNo(futureMainPhoto.getPhotoNo()); futureMainPhoto.setPhotoNo(1); entityManager.pesist(mainPhoto); entityManager.pesist(futureMainPhoto);' – Milan

相關問題