2011-01-13 64 views
2

我有兩個單獨的進程,每個都有自己的數據庫連接,將產品記錄插入到表中。在一個過程將產品插入表中之前,它會檢查是否存在具有相同屬性的產品。如果產品已經存在,則該過程會修改一個字段並保存產品。否則,該過程會創建一個新產品。防止使用Rails跨多個連接重複記錄

我在事務中包裝查找並創建,但重複的產品仍然被插入,因爲ActiveRecord事務只對單個數據庫連接起作用。

防止使用ActiveRecord和Rails跨多個數據庫連接插入重複產品的最佳方法是什麼?

回答

1

您可以在表上創建一個multi-field key,這將強制這些字段的唯一組合。然後,您的應用程序只能監視數據庫INSERT錯誤。

+0

確切地說,數據庫就是這裏真相的唯一來源。讓* it *決定要插入的產品是否是唯一的。 – 2011-01-13 17:39:01