簡體   English   中英

數據導入,入門密鑰選擇和Active Record最佳做法

[英]Data Import, primery key choice and Active Record best practices

我已經讀過好幾次了,在Active Record中使用“自定義入門密鑰”(對象的ID除外)不是一個好習慣,必須非常小心地使用它。

這是我的問題:

我正在構建一個Rails應用程序。 我必須在數據庫中導入諸如:products:countries:regions等的對象。

我打算通過CSV導入來實現。 有時,我可能會重置一個表,然后完全使用更多數據重新導入它。 使用代碼代替id作為primary_key會非常方便,這將確保我的數據庫在重新導入數據后仍然保持一致。 我只需要確保日期在每次導入時始終保持相同的code (這比嘗試保持相同的id容易)。

  1. 使用“代碼”作為主鍵有什么危險?
  2. 是否有“智能”方式來管理CSV導入,以便對象始終保持相同的ID?
  3. 我的最佳做法是什么?

謝謝。

不建議覆蓋primary_key因為它會破壞一些Rails的魔力。 另外,您還必須編寫猴子補丁才能使其正常工作。 我建議創建一個稱為code的新列並為其編制索引。 這樣,無論導入多少次,您的代碼都將始終相同。

您將必須使用Region.find_by_code(code)Region.find_by_code!(code)進行查詢。 如果未找到記錄,則bang方法(帶“!”的方法)將引發異常,類似於Region.find(id)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM